Как получить товарные категории для варианта текущего заказа? - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь прикрепить к кассе woocommerce для каждого элемента дополнительные метаданные. Каждый купленный товар должен получать метаданные с категорией товара.

Я нашел отличный способ сделать это здесь , но проблема в том, что он только работает для продуктов первого уровня. Как только у меня появляется вариант продукта, я не получаю названия категории, только идентификатор продукта.

Я ищу способ получить категорию для обычного продукта или, если существует вариация либо родительского продукта, либо самого варианта - я предпочитаю варианты основной категории продукта.

Это то, что у меня есть (скопировано из приведенной выше ссылки):

add_action('woocommerce_checkout_create_order_line_item', 'add_order_item_custom_meta', 10, 4 );
function add_order_item_custom_meta($item, $cart_item_key, $cart_item, $order)
{
   $product = $item->get_product(); // The WC_Product instance Object
   $cat_ids = $product->get_category_ids(); // returns an array of cat IDs
   $cat_names = [];    

   foreach ( (array) $cat_ids as $cat_id) {
       $cat_term = get_term_by('id', (int)$cat_id, 'product_cat');
       if($cat_term){
           $cat_names[] = $cat_term->name; // You may want to get slugs by $cat_term->slug
       }
   }

   $item->update_meta_data( '_raw_product_id', $product->get_id() );
   $item->update_meta_data( '_raw_product_name', $cat_names );
}

Любая помощь приветствуется - я новичок в WooCommerce.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...