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.
źródło
Zrozumiałem to. Brakowało mi kilku parametrów potrzebnych do dodania produktu zmiennego do mojego koszyka. Brakujące parametry to
variation_id
i typ atrybutu, któregovariation_id
dotyczy. 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=1
ponieważ 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:
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 ).
źródło