Fügen Sie eine Variation zum Warenkorb mit AJAX - WooCommerce API hinzu?

7

Ich habe ein Element mit folgenden Daten:

%Vor%

Wenn der Benutzer auf "In den Einkaufswagen" klickt, möchte ich eine Ajax-Anfrage mit der WC-API machen und das obige Objekt zum Warenkorb hinzufügen.

%Vor%

Dann möchte ich auf der Warenkorb-Seite eine weitere Ajax-Anfrage mit der WC-API machen und den Inhalt des Einkaufswagens abrufen.

Ich habe keine Dokumentation (offiziell oder inoffiziell) gefunden, wie man das vom Client mit Javascript macht.

Weiß jemand das und kann mir bitte ein Beispiel geben?

Weiß jemand auch, warum die WooCommerce Api-Dokumentation so schrecklich ist (es fehlen jegliche Informationen über offensichtliche / standardmäßige Fragen wie oben). Ich denke ernsthaft daran, dass unsere Firma zu Shopify wechselt.

    
Sprout Coder 03.12.2014, 11:40
quelle

2 Antworten

22

Sie können untersuchen, wie WooCommerce Artikel über Ajax direkt in den Code in den Warenkorb hinzufügt .... der Callback befindet sich in includes/class-wc-ajax.php . WooCommerce tut dies bereits auf Produkt "Schleifen" (Produktarchiven), also glaube ich nicht, dass Sie das Rad neu erfinden müssen und wenn ihr vorhandener Code nicht für das funktioniert, was Sie versuchen, dann sollten Sie in der Lage sein, zu borgen schwer davon.

Der Anfang dieser Datei hat eine Schleife mit allen WooCommerce Ajax-Aktionen, aber wir können herausfinden, dass das Hinzufügen zum Warenkorb im Grunde folgendes ist:

%Vor%

Und es ist Rückruf etwas weiter unten in der Datei:

%Vor%

Wenn Sie ihren Add-In-Cart-Ajax-Aufruf anzeigen möchten, befindet sich der JS-Code in assest/js/frontend/add-to-cart.js .

BEARBEITEN

Nun, da ich weiß, dass Sie eine Variation hinzufügen möchten, vielleicht können wir das oben beschriebene optimieren.

Zuerst müssen Sie die AJAX-URL an Ihr Skript übergeben:

%Vor%

Dann würde Ihr AJAX-Anruf etwa so aussehen:

%Vor%

Um eine spezifische Variation hinzuzufügen, benötigen Sie zusätzlich zu allen spezifischen Optionen die ID der Variation.

Und schließlich würde der neue Rückruf für die Aktion woocommerce_add_variation_to_cart ajax in etwa wie folgt aussehen:

%Vor%

Meistens kopiere ich nur den Ansatz von WooCommerce und füge die zwei Variablen hinzu, die zum Hinzufügen von Variationen benötigt werden. Völlig ungeprüft, aber ich hoffe es hilft.

    
helgatheviking 03.12.2014, 17:33
quelle
4

Wenn jemand interessiert ist, habe ich auch eine "Remove from cart" -Funktion geschrieben, um dem Add to cart zu begegnen. Mein Projekt forderte Radio Buttons beim Auschecken, also musste ich ein Produkt hinzufügen und die Alternative entfernen, die es bereits dort war:

Hier ist der PHP:

%Vor%

Und dann ist hier die jQuery:

%Vor%

Das if (leer) ... im PHP war so, dass ich die Funktion auch von der Serverseite aus aufrufen konnte, wenn ich es brauchte.

    
RestlessWeb 25.10.2015 18:59
quelle

Tags und Links