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);
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.