Adăugare Produs cu Variații WooCommerce în Coș din link personalizat
Încerc să adaug un produs cu variații în coșul meu direct printr-un link. Setez variation_id prin query string. Din câte îmi dau seama, trimit datele exact în același mod în care o face formularul implicit pentru produsele cu variații.
Iată codul din pagina mea single-product:
<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Adaugă în Coș</a>
Pe de altă parte, produsul simplu funcționează bine. Am setat prețuri pentru variațiile produsului meu în panoul de administrare. Nu sunt sigur de ce nu este la fel de simplu precum trimiterea datelor. Orice ajutor ar fi foarte apreciat.

În prezent lucrez la un magazin WooCommerce versiunea 2.1.12 și se pare că au schimbat acel comportament.
URL-ul meu AJAX pentru adăugarea produselor în coș trebuie să arate astfel:
?add-to-cart=[ID-PRODUS]&variation_id=[ID-VARIATIE]&attribute_[NUME-ATRIBUT]=[SLUG-ATRIBUT]&attribute_[NUME-ATRIBUT]=[SLUG-ATRIBUT]
exemplu:
http://example.com/store/category/product/?add-to-cart=239&variation_id=240&attribute_pa_size=48-2&attribute_pa_color=gold
Aceasta adaugă un produs specific în coș și setează și atributele variației în coș.
Poți chiar să setezi cantitatea adăugând simplu &quantity=[VALOARE]
În final, acest lucru este util deoarece toate aceste valori sunt setate în formularul de trimitere / câmpurile de selectare, trebuie doar să le cauți..

Am rezolvat această problemă. Îmi lipseau câțiva parametri necesari pentru a adăuga un produs variabil în coșul meu. Parametrii lipsă sunt variation_id
și tipul de atribut la care se referă variation_id
. ID-ul de variație poate fi găsit în admin > WooCommerce > Produse și sub fila de variații lângă variația de produs pe care ai creat-o.
Parametrul atributului este format din prefixul attribute_
și apoi numele atributului sanitizat. De exemplu, atributul meu se numește Culori Stoc, deci parametrul meu de tip atribut este attribute_culori-stoc. Din câte am înțeles, doar setezi attribute_culori-stoc=1
deoarece metoda de adăugare în coș verifică doar dacă acesta există.
Iată un exemplu simplu de link care adaugă un produs în coșul meu cu ID-ul de variație 261 pentru culori stoc:
<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_culori-stoc=1">Adaugă în Coș</a>
Pentru a utiliza acest lucru într-o situație reală, ar trebui să setezi tipul de atribut și ID-ul de variație dinamic din opțiunile alese de utilizator într-un meniu drop-down sau ceva similar (cu excepția cazului în care fiecare produs are aceeași variație, ceea ce l-ar transforma practic într-un produs simplu).
