2017-01-12 4 views
1

мне нужно добавить пользовательскую цену WooCommerce корзины с помощью woocommerce_before_calculate_totals крючка, и это работает прекрасно:WooCommerce добавить пользовательскую цену, если продукт находится в определенной категории

add_action('woocommerce_before_calculate_totals', 'add_custom_price'); 
function add_custom_price($cart_object) { 
    $custom_price = 50; // This will be your custome price 
    foreach ($cart_object->cart_contents as $key => $value) { 
     $value['data']->price = $custom_price; 
    } 

} 

Теперь я хотел бы добавить эту пользовательскую цену в корзину только если товары находятся в определенной категории.

Возможно ли это?

Благодаря

ответ

0

Вы должны использовать has_term() функцию в состоянии, таким образом:

add_action('woocommerce_before_calculate_totals', 'add_custom_price'); 
function add_custom_price($cart_object) { 

    // Set Here your defined category (ID, slug or Name) 
    $defined_category = 23; 

    $custom_price = 50; // This will be your custome price 
    foreach ($cart_object->cart_contents as $key => $value) { 

     if(has_term($defined_category, 'product_cat', $value['data']->id)) { 
      $value['data']->price = $custom_price; 
     } 

    } 

} 

код идет в function.php файл вашей активной темы ребенка (или темы). Или также в любых плагинах php-файлов.

Смежные вопросы