Aktualisieren und speichern Sie einen Bestellartikel in der Bestellung auf Woocommerce 3

Lesezeit: 1 Minute

Benutzer-Avatar
Rick Morty

Ich versuche, die Menge, die Zwischensumme und die Gesamtsumme einer Position in WooCommerce zu ändern, aber mein Code scheint nur die Endsumme zu ändern … warum ist das so? (es gibt nur 1 Werbebuchung für jede Bestellung, die ich ändern möchte)

Hier ist mein Code, um die Details einer Werbebuchung zu ändern;

$ordernum = 12345; //what I want
$qnty = 30; //or whatever
$subtotal = 10; 
$total = 300; //for show

$order = wc_get_order($ordernum);
foreach( $order->get_items() as $item_id => $item ){
                                $item->set_quantity($qnty);
                                $item->set_subtotal($subtotal); 
                                $item->set_total($total);
                                $item->save();
                }
$order->set_total($total);   
$order->save();

BEARBEITEN: Es scheint ewig zu dauern, bis die Änderungen im Admin-Panel wirksam werden … was wäre der Fall, da dies programmgesteuert erfolgt … oder wird es gespeichert?

  • Entschuldigung, Sie haben Recht … Haben Sie die Methode save() ausprobiert?

    – LoicTheAztec

    21. August 2018 um 21:52 Uhr

  • @LoicTheAztec ja, habe ich. Aber im Admin-Panel dauert es unerträglich lange, bis Bestellungen die Updates in den Woocommerce-Tabellen anzeigen … gibt es einen Grund dafür?

    – Rick Morty

    21. August 2018 um 21:55 Uhr

  • Es ist schwierig, eine Erklärung mit dem bereitgestellten Code und Kontext in Ihrer Frage zu geben.

    – LoicTheAztec

    21. August 2018 um 21:59 Uhr


Ich kenne Woocommerce nicht, denke aber, dass Sie anrufen sollten $item->save() on item in jedem Schleifenlauf ofc.

  • Du hast Recht! Das ist nötig.

    – Herr Jo

    23. September 2021 um 12:30 Uhr

1009830cookie-checkAktualisieren und speichern Sie einen Bestellartikel in der Bestellung auf Woocommerce 3

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy