Woocommerce Dodaj produkt do koszyka z niestandardowego linku [zamknięty]

15

Próbuję dodać produkt odmianowy do mojego koszyka bezpośrednio przez link. Ustawiam variation_id za pomocą ciągu zapytania. O ile mogę powiedzieć, przesyłam dane dokładnie w taki sam sposób, jak robi to domyślna wersja produktu.

Oto kod na mojej stronie z jednym produktem:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Add to Cart</a>

I odwrotnie, prosty produkt działa dobrze. Ustawiłem ceny dla moich odmian produktów w admin. Nie jestem pewien, dlaczego nie jest to tak proste, jak przesyłanie danych. Każda pomoc byłaby bardzo wdzięczna.

ezekielDFM
źródło

Odpowiedzi:

10

Obecnie pracuję w sklepie woocommerce v2.1.12 i wygląda na to, że skandowali to zachowanie.

mój adres URL ajax, aby dodać elementy do koszyka, musi wyglądać następująco:

?add-to-cart=[PRODUCT-ID]&variation_id=[VARIATION-ID]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]

przykład:

http://example.com/store/category/product/?add-to-cart=239&variation_id=240&attribute_pa_size=48-2&attribute_pa_color=gold

to dodaje określony produkt do koszyka, a także ustawia atrybuty wariacyjne w koszyku. możesz nawet ustawić ilość, po prostu dodając&quantity=[VALUE]

w końcu przydaje się to, ponieważ wszystkie te wartości są ustawione w formularzach formularza / pól wyboru, wystarczy je wyszukać.

honk31
źródło
2
Szybka uwaga - sprawdź, czy w polu wyboru odmian znajduje się odpowiednia nazwa atrybutu. Zazwyczaj używa łączników, więc otrzymujesz: & attribute_my-attribute-name = value
Imperative Ideas
9

Zrozumiałem to. Brakowało mi kilku parametrów potrzebnych do dodania produktu zmiennego do mojego koszyka. Brakujące parametry to variation_idi typ atrybutu, którego variation_iddotyczy. Identyfikator odmiany można znaleźć w admin> woocomerce> produktach i na karcie odmian obok utworzonej odmiany produktu.

Parametr atrybutu jest tworzony z prefiksu, attribute_a następnie z dezynfekowanej nazwy atrybutu. Na przykład mój atrybut nazywa się Kolory podstawowe, więc param typu atrybutu to atrybut_stock-kolory. Z tego, co mogę powiedzieć, właśnie ustawiłeś, attribute_stock-colors=1ponieważ metoda dodawania do koszyka po prostu sprawdza, czy istnieje.

Oto prosty przykład linku, który dodaje produkt do mojego koszyka z wariantem id 261 kolorów podstawowych:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_stock-colors=1">Add to Cart</a>

Aby użyć tego w rzeczywistej sytuacji, musisz dynamicznie ustawić typ atrybutu i identyfikator odmiany z opcji wybranych przez użytkownika w menu rozwijanym lub czegoś podobnego (chyba że każdy produkt ma tę samą odmianę, co w zasadzie uczyniłoby go produktem Simpel ).

ezekielDFM
źródło