我们正在尝试创建一个“从-到”过滤器。 用户在 From 中填写值 X 和/或在 To 中填写值 Y。
根据这些输入,我们希望向 woocommerce 产品查询添加更大或更少的条件。
以下代码示例是我们尝试过的众多示例之一:
function alter_wc_product_loop_query($query)
{
if ((is_product_category() || is_shop()) && $query->is_main_query()) {
$taxes[] = [
'taxonomy' => 'pa_horsepower-hp',
'field' => 'name',
'terms' => 100,
'operator' => '>='
];
$query->set('tax_query', $taxes);
}
}
add_action('pre_get_posts', 'alter_wc_product_loop_query');
我们还尝试了操作 add_action('woocommerce_product_query', 'alter_wc_product_loop_query');。
我们还尝试了元查询:
$attribute_name = 'vermogen-pk'; // Replace with the attribute name
$comparison_operator = '>'; // Replace with the desired comparison operator, e.g., >, <, >=, <=
$comparison_value = 100; // Replace with the desired numeric value
$meta_query = $query->get('meta_query');
$meta_query[] = array(
'key' => 'attribute_' . $attribute_name,
'value' => $comparison_value,
'type' => 'numeric',
'compare' => $comparison_operator,
);
$query->set('meta_query', $meta_query);
在所有情况下它都不起作用。它要么显示所有产品,要么根本不显示产品。
我们如何过滤大于或小于条件的产品?
我们尝试了tax_queries和meta_queries。 在这两种情况下,过滤都不起作用。
我们调试了查询,要么查询根本没有添加,要么添加查询但结果没有结果
你是如何解决这个问题的? 我们还尝试创建一个“从-到”过滤器。用户在 From 中填写值 X 和/或在 To 中填写值 Y。但直到现在我还没有找到解决办法。 谢谢