【问题标题】:Filter products based on a custom field in WooCommerce根据 WooCommerce 中的自定义字段过滤产品
【发布时间】:2021-06-02 08:28:25
【问题描述】:

我对 WooCommerce 中的自定义字段有疑问:有没有办法根据自定义字段元键和值显示产品?

我创建了一个用于交付的产品自定义字段,元键为custom_text_field_delivery,值为24h5days7days

然后我尝试通过如下 URL 获取它们:localhost/shop/?custom_text_field_delivery=24h,但没有成功。

有没有办法显示它们,或者我应该为每个选项创建一个页面?

【问题讨论】:

    标签: php woocommerce product query-string custom-fields


    【解决方案1】:

    您可以使用以下方法根据查询字符串中的自定义字段过滤产品:

    add_filter( 'woocommerce_product_query_meta_query', 'filter_products_with_custom_field', 10, 2 );
    function filter_products_with_custom_field( $meta_query, $query ) {
        $meta_key = 'custom_text_field_delivery'; // <= Here define the meta key
        
        if ( ! is_admin() && isset($_GET[$meta_key]) && ! empty($_GET[$meta_key]) ) {
            $meta_query[] = array(
               'key'   => $meta_key,
               'value' => esc_attr($_GET[$meta_key]),
            );
        }
        return $meta_query;
    }
    

    您将能够通过 URL 过滤产品,例如:localhost/shop/?custom_text_field_delivery=24h

    代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

    【讨论】:

    • 它有效,感谢 LoicTheAztex,这个月你救了我 3 次。 __
    • @LoicTheAztec 可以修改它以使用自定义字段数组吗?并且还要让它与 AND 查询一起使用以一次选择多个值?
    猜你喜欢
    • 2018-09-08
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2019-04-24
    • 1970-01-01
    • 2018-01-10
    • 2015-07-04
    相关资源
    最近更新 更多