web-dev-qa-db-de.com

Woocommerce Variationsprodukt from this link in the cart legen

Ich versuche, ein Variationsprodukt direkt über einen Link in meinen Warenkorb zu legen. Ich setze die variant_id mit der Abfragezeichenfolge. Soweit ich weiß, sende ich die Daten genauso wie das Standardformular für Variationsprodukte.

Hier ist der Code auf meiner Einzelproduktseite:

<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>

Umgekehrt funktioniert das einfache Produkt gut. Ich habe im Admin Preise für meine Produktvariationen festgelegt. Ich bin nicht sicher, warum es nicht so einfach ist, die Daten durchzusenden. Jede Hilfe wäre sehr dankbar.

15
ezekielDFM

Fand dieses heraus. Es fehlten einige Parameter, um meinem Warenkorb ein variables Produkt hinzuzufügen. Die fehlenden Parameter sind der variation_id und der Attributtyp, auf den sich der variation_id bezieht. Die Variations-ID finden Sie in admin> woocomerce> products und auf der Registerkarte "Variationen" neben der von Ihnen erstellten Produktvariation.

Der Attributparameter wird aus dem Präfix attribute_ und dem bereinigten Attributnamen gebildet. Zum Beispiel heißt mein Attribut Stock Colors, also ist mein Attributtyp param attribute_stock-colors. Nach allem, was ich sagen kann, setzen Sie einfach attribute_stock-colors=1, weil die Methode zum Hinzufügen zum Warenkorb nur prüft, ob sie existiert.

Hier ist ein einfaches Beispiel für einen Link, über den ein Produkt mit der Variations-ID 261 von Lagerfarben in meinen Warenkorb gelegt wird:

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

Um dies in einer realen Situation zu verwenden, müssten Sie den Attributtyp und die Variations-ID dynamisch anhand der Optionen festlegen, die der Benutzer in einer Dropdown-Liste oder Ähnlichem ausgewählt hat (es sei denn, jedes Produkt verfügt über dieselbe Variation, was es im Grunde genommen zu einem einfachen Produkt macht ).

9
ezekielDFM

ich arbeite derzeit an einem Woocommerce v2.1.12-Shop und es scheint, dass sie dieses Verhalten geändert haben.

meine Ajax-URL zum Hinzufügen von Artikeln zum Warenkorb muss folgendermaßen aussehen:

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

beispiel:

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

dadurch wird ein bestimmtes Produkt in den Warenkorb gelegt und die Variationsattribute im Warenkorb festgelegt. Sie können die Menge sogar einstellen, indem Sie einfach &quantity=[VALUE] hinzufügen

am Ende ist dies praktisch, da all diese Werte in den Formular-/Auswahlfeldern für die Übermittlung festgelegt sind. Sie müssen sie nur nachschlagen.

10
honk31