Проверьте, принадлежит ли продукт к определенной категории продуктов в Woocommerce - PullRequest
0 голосов
/ 19 мая 2018

В Woocommerce я хотел бы проверить, относится ли продукт к категории продуктов "мыло".

Я использую этот код:

<?php
    global $woocommerce;
    $items = $woocommerce->cart->get_cart();

        foreach($items as $item => $values) { 
            $_product =  wc_get_product( $values['data']->get_id() );
            $getProductDetail = wc_get_product( $values['product_id'] );
            echo "<b>".$_product->get_title() .'</b>  <br> Quantity: '.$values['quantity'].'<br>'; 
            // $category[] = $item->slug;
            // echo $category[0]->cat_name;
            $categories = $_product->get_categories();
            if(has_term( 'soap',$categories )){
                echo "success";
            }else{

                echo "nope";
            }
        }
?>

Однако я не могузаставить это работать, как я получаю "Нету".Я думаю, что это та часть кода, где проблема:

$categories = $_product->get_categories();
            if(has_term( 'soap',$categories )){
                echo "success";
            }else{

                echo "nope";
            }
        }

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 19 мая 2018

Обновлено: Вот правильный способ заставить его работать:

foreach(WC()->cart->get_cart() as $cart_item ) { 
    // The instance of the WC_Product object
    $_product = $cart_item['data'];
    // Some output
    echo '<b>'.$cart_item['data']->get_title().'</b>  <br>'; 
    echo 'Quantity: '.$cart_item['quantity'].'<br>'; 

    // Check for a specific product category
    if( has_term( 'soap', 'product_cat', $cart_item['product_id'] ) ){
        echo "success";
    } else {
        echo "nope";
    }
}

Проверено и работает.

Примечания:

  • Чтобы получить объект WC_Product из товаров в корзине, просто используйте $cart_item['data']
  • .Для управления категориями продуктов или тегами продуктов мы получаем в этом случае идентификатор продукта родительской переменной, который $cart_item['product_id'] разрешает…
    Поэтому всегда используйте $cart_item['product_id'] в корзине для таргетинга на категорию продукта или тег продукта.
  • Категория продуктов Woocommerce - это пользовательская таксономия, отличная от категорий Wordpres.
  • product_cat - таксономия для категорий продуктов, которые будут использоваться с has_term() и некоторыми другими функциями Wordpress, связанными с терминами.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...