按$ _GET

时间:2018-07-31 02:25:13

标签: wordpress woocommerce webhooks

我需要做的是在URL中为属性应用一个值,因此仅显示与该属性匹配的产品。我不想在页面上做任何小部件或其他可见的过滤器。

为此,我假设我需要使用webhooks中的一种,并过滤出所有要显示的商品。

在这种情况下,谁能建议哪个钩子是最好的,并简单说明一下触发函数将如何返回新的产品数组?

谢谢!

NB :我还想查询一个自定义属性,该属性没有任何条件,只是一个直键/值。

更新1 我在玩两种技巧。一个非常可靠,基本上可以使用:

if (!$product->attributes || $product->get_attribute( 'testKey' ) != $_GET["testKey"]) {
    //return;
}

位于 content-product.php 的顶部,但是WooCommerce当然仍会说found_posts的原始值。当然不理想。

我发现这样的事情应该在 functions.php 中起作用:

function testFilter($meta_query) {
    $meta_query[] = array (
        'key'     => 'testKey',
        'value'   => 'testVal',
        'compare' => '='
    );
    return $meta_query;
}
add_filter( 'woocommerce_product_query_meta_query', 'testFilter', 9 );

除非没有,否则不返回任何结果,是否使用LIKE,EXISTS等都没有关系。我使用错了吗?

更新2 我不会说这就是答案,因为这似乎只是在一组自定义属性中寻找一个值,但是this result有所帮助。

1 个答案:

答案 0 :(得分:0)

add_filter( 'wpv_filter_query', 'wpv_filter_color_attribute' );
function wpv_filter_color_attribute( $query_args) { 
   $tax_query = array();
   $tax_query['taxonomy'] = 'pa_size';
   $tax_query['field'] = 'term_id';
   $tax_query['terms'] = $_GET['pa_size'];
   $query_args['tax_query'] = array($tax_query);
   return $query_args;
 }

您应将“ pa_size”替换为属性分类标签,也应将$ _GET ['pa_size']替换为正确的URL参数。

您可以使用上述代码按属性过滤产品。我还没有尝试过。但是,这可能会对您有所帮助。