Woocommerce Variationsprodukt aus benutzerdefiniertem Link in den Warenkorb legen [geschlossen]


15

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 mir nicht sicher, warum es nicht so einfach ist, die Daten durchzusenden. Jede Hilfe wäre sehr dankbar.

Antworten:


10

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 addieren&quantity=[VALUE]

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.


2
Kurznotiz - Überprüfen Sie das Variationsauswahlfeld auf den richtigen Attributnamen. In der Regel werden Bindestriche verwendet, sodass Folgendes angezeigt wird: & attribute_my-attribute-name = value
Imperative Ideas

9

Fand dieses heraus. Es fehlten einige Parameter, um meinem Warenkorb ein variables Produkt hinzuzufügen. Die fehlenden Parameter sind der variation_idund der Attributtyp, auf den variation_idsich der 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, haben Sie nur festgelegt, attribute_stock-colors=1weil die Methode zum Hinzufügen zum Warenkorb nur überprüft, ob sie vorhanden ist.

Hier ist ein einfaches Beispiel für einen Link, mit dem 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 ).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.