AND Conditional Filter Pass (for Product Attribute)
Implement conditional filter for product attributes.
// Return filter passed true, only if all the attribute filters are passed
add_filter('advanced_woo_discount_rules_filter_passed', function ($filter_passed, $rule, $product, $sale_badge, $product_table, $conditionFailed) {
if (method_exists($rule, 'getFilter')) {
$filters = $rule->getFilter();
if ($filter_passed && !empty($filters) && class_exists('\Wdr\App\Helpers\Filter')) {
$filter_helper = new \Wdr\App\Helpers\Filter();
foreach ($filters as $filter) {
if ($filter->type == 'product_attributes') {
$filter_piece = (object) array($filter);
$attribute_filter_passed = $filter_helper->matchFilters($product, $filter_piece, $sale_badge, $product_table);
if ($attribute_filter_passed === false) {
return false;
}
}
}
}
}
return $filter_passed;
}, 10, 6);