Я хочу получить категорию товаров в корзине на кассе в WooCommerce. Я хочу извлечь его, а затем поместить в поле в моей пользовательской кассе.
я использую WooCommerce MultiStep Checkout Wizard Премиум плагин и конкретный крюк:
add_action('woocommerce_multistep_checkout_before_order_info', 'destinationStep');
Я немного потерян и не могу найти много документация за то, что мне нужно использовать, чтобы получить это.
Я пытаюсь заставить элементы появляться, но я получаю пустой массив.
$order = new WC_Order( $order_id );
$items = $order->get_items();
var_dump($items);
Вы можете попробовать сначала с вашим подходом «new WC_Order( $order_id );
«, сюда:
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);
Если это все еще не работает, попробуйте с «new WC_Order($post->ID)
« подход:
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');
Обновить — После некоторой мысли:
Вы не могу получить идентификатор заказа для `’post_type’ => ‘shop_order’, потому что он еще не существует. Этот идентификатор заказа генерируется, когда клиент отправляет заказ, но не раньше на странице оформления заказа.
Так что в этом случае нормально получить пустой массив.
Других решений пока нет …