Woocommerce: wie füge ich Metadaten in einen Warenkorb posten?
Habe ich ein digitales Produkt, das beschrieben wird durch eine Menge und einen Preis, aber die muss auch 3 weitere Nummern vollständig angeben (Unix-Termine, etc). Problem: wie bekomme ich diese zahlen in die Karre??
Soweit ich sehen kann, gibt es 2 Möglichkeiten, dies zu behandeln:
- Ein Produkt variation
- Ein Produkt benutzerdefiniertes Feld
Sieht es aus wie Variationen beherrscht nur diskrete Werte mit einem begrenzten Bereich (dh. rot/gelb/grün, S/M/L, etc), und kann nicht mit Allgemeinen zahlen, wie Daten. Das lässt benutzerdefinierten Felder. Ich denke, ich bin Recht sagen, dass die benutzerdefinierten Felder sind normale meta-Daten auf dem Produkt post-Seite, so kann ich mit Ihnen umgehen mit get_post_meta
und update_post_meta
.
So, wenn ich gehen für benutzerdefinierte Felder, dann würde ich ein update der Produkt-Seite-Feld während der Bestellung, und dann Las ich wieder das Feld während der Kaufabwicklung, wenn der WC_Order
erstellt wird, und fügen Sie das Feld, um die neue Ordnung. Aber das funktioniert nicht. Ich kann nicht ändern, die Metadaten auf der Produkt-Seite, denn das Produkt ist global für alle Kunden, und dieser Vorgang würde stören andere Kunden. In anderen Worten, Sie kann nicht speichern, um-spezifischer Informationen in ein Produkt, so dass keine dieser Möglichkeiten funktionieren würde.
So, wie Speichere ich temporär Produkt-Metadaten und übergeben es zwischen den Bestell-und checkout-Phasen (dh. zwischen WC_Cart
und WC_Order
)?
Eine option wäre, um es zu speichern als Benutzer Metadaten (oder wie die session-Daten?), aber es muss einen besseren Weg geben - irgendwelche Ideen?
InformationsquelleAutor EML | 2015-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, einfach das zu machen mit session-Daten. Wenn Sie hinzufügen einen Artikel in den Warenkorb legen (siehe Quelle für
add_to_cart_action
) Sie erstellen eine session-variable, enthält zusätzliche meta-Daten:Wenn der Benutzer checkt die Warenkorb-Daten verschwindet, und ein neuer Auftrag erstellt wird. Können Sie Haken in
woocommerce_add_order_item_meta
hinzufügen der Sitzung meta-Daten, die um meta-Daten:Das ist es. Sie haben, um herauszufinden, wie man die Reihenfolge von Metadaten aus und machen Sie etwas sinnvolles mit ihm, obwohl. Sie können auch deaktivieren Sie die session-Daten, die von den Haken in
woocommerce_before_cart_item_quantity_zero
, undwoocommerce_cart_emptied
. Es gibt gist hier, die einige Beispiel-code für diese.woocommerce_add_order_item_meta
ist depracated: docs.woothemes.com/wc-apidocs/... Vielleichtwc_add_order_item_meta
können verwendet werden: docs.woothemes.com/wc-apidocs/...Die Funktion ist veraltet, der Haken kann immer noch verwendet werden.
nun, der Haken ist auch veraltet.
woocommerce_new_order_item
sollte nun verwendet werden.InformationsquelleAutor EML