Wie erhalte ich Kategorien von einer Bestellung an der Kasse in WooCommerce?

Lesezeit: 2 Minuten

Benutzer-Avatar
Josip Godly Zirdum

Ich möchte die Kategorie der Artikel im Warenkorb an der Kasse in WooCommerce erhalten. Ich möchte es extrahieren und dann in ein Feld in meiner benutzerdefinierten Kasse einfügen.

Ich benutze Mehrstufiger WooCommerce-Checkout-Assistent Premium-Plugin und a spezifischer Haken:

add_action('woocommerce_multistep_checkout_before_order_info', 'destinationStep');

Ich bin ein wenig verloren und kann nicht viel finden Dokumentation für das, was ich verwenden muss, um es zu bekommen.

Ich versuche, nur Elemente erscheinen zu lassen, aber ich bekomme nur ein leeres Array.

$order = new WC_Order( $order_id );
$items = $order->get_items(); 
var_dump($items);

Benutzer-Avatar
LoicTheAztec

Du könntest es erstmal mit deinem Ansatz versuchen new WC_Order( $order_id );Hier entlang:

function destinationStep( $order_id )

    global $woocommerce; 

    $order = new WC_Order( $order_id );
    $items = $order->get_items(); 
    // echo var_dump($items);

    //----
    foreach ($items as $key => $item) {
        $product_name = $item['name'];
        $product_id = $item['product_id'];
        $terms = get_the_terms( $product_id, 'product_cat' );
        // echo var_dump($terms);

        foreach ( $terms as $term ) {
            // Categories by slug
            $product_cat_slug= $term->slug;
        }
    }

add_action('woocommerce_multistep_checkout_before_order_info', 'destinationStep', 10, 1);

Wenn es immer noch nicht funktioniert, versuchen Sie es mit new WC_Order($post->ID) sich nähern:

function destinationStep()

    global $woocommerce, $post; 

    $order = new WC_Order($post->ID);
    $items = $order->get_items(); 
    // echo var_dump($items);

    //----
    foreach ($items as $key => $item) {
        $product_name = $item['name'];
        $product_id = $item['product_id'];
        $terms = get_the_terms( $product_id, 'product_cat' );
        // echo var_dump($terms);

        foreach ( $terms as $term ) {
            // Categories by slug
            $product_cat_slug= $term->slug;
        }
    }

add_action('woocommerce_multistep_checkout_before_order_info', 'destinationStep');

Aktualisieren – Nach einigem Nachdenken:

Du kann die Auftrags-ID nicht abrufen für `’post_type’ => ‘shop_order’, weil es noch nicht existiert. Diese Bestell-ID wird generiert, wenn der Kunde die Bestellung aufgibt, jedoch nicht vor der Checkout-Seite.
In diesem Fall ist es also normal, ein leeres Array zu erhalten.

  • Hallo, entschuldigen Sie die späte Antwort, beide arbeiten nicht für mich. Ich verwende am Anfang nur das erste Bit des Codes und versuche, den Var-Dump zu erhalten. Beide Var-Dumps sind leere Arrays. Irgendein Rat? Ich kaufe dir etwas Tequila, wenn wir das hinkriegen 🙂

    – Josip Gòdly Zirdum

    13. Juni 2016 um 2:47 Uhr


  • Ja das habe ich auch probiert. Nur der erste Teil ohne Schleife. Nur ein leeres Array.

    – Josip Gòdly Zirdum

    13. Juni 2016 um 2:50 Uhr


  • Ich habe gerade für die Unterstützung gestimmt, was ich an anderer Stelle gelesen habe, es funktioniert nicht nur für mich.

    – Josip Gòdly Zirdum

    13. Juni 2016 um 2:52 Uhr


  • Nein, beide geben nur leere Arrays aus.

    – Josip Gòdly Zirdum

    13. Juni 2016 um 2:54 Uhr

  • Lassen Sie uns diese Diskussion im Chat fortsetzen.

    – Josip Gòdly Zirdum

    13. Juni 2016 um 3:02 Uhr

1019490cookie-checkWie erhalte ich Kategorien von einer Bestellung an der Kasse in WooCommerce?

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

Privacy policy