woo discount rules exclude product from discount in specific category using priority id
Exclude products from discounts in specific categories using priority ID in Woo discount rules.
add_filter('woo_discount_rules_exclude_product_from_discount', function($return, $product, $id, $rule, $cart_item){
$priority_id = array(3); //Enter the priority id for which you need discount. i,e: array(1,2,3)
$category_id = array(22); //Enter the category id for which you need discount. i,e: array(1,2,3)
if(in_array($id,$priority_id)){
if (method_exists($product, 'get_category_ids')) {
if ($product->is_type('variation')) {
if (method_exists($product, 'get_parent_id')) {
$parent_id = $product->get_parent_id();
if(!empty($parent_id)){
$product = wc_get_product($parent_id);
}
}
}
$product_categories = $product->get_category_ids();
if(!empty($product_categories) && is_array($product_categories)){
$is_valid_category = array_intersect($category_id, $product_categories);
if(empty($is_valid_category)){
$return = true;
}
}
}
return $return;
}
}, 10, 5);