Sie könnten versuchen, zuerst mit Ihrem Ansatz "new WC_Order($order_id);
", auf diese Weise:
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 mit "new WC_Order($post->ID)
" Ansatz versuchen funktioniert:
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:
Sie können den Auftrag Id für ` 'post_type' get => 'shop_order', weil es noch nicht existiert. Diese Bestell-ID wird generiert, wenn der Kunde die Bestellung absendet, jedoch nicht vorher auf der Kassenseite.
In diesem Fall ist es normal, ein leeres Array zu erhalten.
Hallo Entschuldigung für die späte Antwort, keine arbeiten für mich. Ich benutze nur das erste Bit des Codes am Anfang und versuche, den var dump zu bekommen. Beide Var-Dumps sind leere Arrays. Irgendein Rat? Ich werde dir Tequila kaufen, wenn wir das schaffen :) –
Ja, ich habe das auch versucht. Nur der erste Teil ohne die Schleife. Nur ein leeres Array. –
Gerade für die Unterstützung aufgewertet das ist, was ich an anderer Stelle gelesen habe, es funktioniert nicht nur für mich. –