当前位置: 首页 > 知识库问答 >
问题:

按ACF复选框值筛选WooCommerce产品的URL查询?

汲利
2023-03-14

我需要能够根据来自ACF字段的值筛选WooCommerce产品,其中包含一系列复选框,例如Apple、Bananas、Grapes等。理想情况下,我希望能够通过URL查询(例如https://example.com/shop/?fruit=Apples)来实现这一点

我一直在尝试这些方法,但没有成功:

function product_initial_filter( $query ) {
if( !is_admin() ) {

    if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'product' ) {

        if( isset($GET['fruit']) ) {
            $query->set('meta_value', $GET['fruit']);
            $query->set('meta_key', 'fruits');
            $query->set('meta_compare', 'IN');
        }

    }
}

// return
return $query;

}

add_action('pre_get_posts', 'product_filter');

共有1个答案

贺栋
2023-03-14

可以在meta_query中传递元参数。此外,如果您是'compare'=>'in',则值必须是数组。检查下面的代码。

function product_initial_filter( $query ) {

    if( !is_admin() && $q->is_main_query() ) {

        if( $query->get('post_type') == 'product' && isset( $GET['fruit'] ) && $GET['fruit'] != '' ) {

            $meta_query = array(
                array(
                    'key'     => 'fruits',
                    'value'   => array( $GET['fruit'] ),
                    'compare' => 'IN',
                ),
            );
            $query->set( 'meta_query', $meta_query );

        }

    }

}
add_action('pre_get_posts', 'product_filter');
 类似资料:
  • 我使用ACF关系字段来显示每个产品的相关博客文章。目前它的工作,但我必须检查每个产品手动显示一个相关的职位上。 问题:我如何添加产品类别,这样我就不需要手动添加200个产品,但只有一个产品类别与这篇文章相关,并将在单一视图下显示这篇文章。 是否可以将其与分类ACF字段集成(如果post具有相关的分类产品,它将显示在该类别的产品下)?可惜想不出办法

  • 问题内容: 我有一个与此非常相似的JTable。 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting 我已经设法在其上设置了普通过滤器(搜索功能),并且效果很好。我想要一个按钮,该按钮将立即仅显示选中素食的行。 好吧,现在感谢@peeskillet和@HovercraftFullOfEels提供的

  • 首先,我试图使选择所有复选框,如果我单击表头中的选择所有复选框,整个表行将选择并显示一个复选框反向消息,即我选择了多少复选框。这里的问题是,如果我单击select all复选框,反向消息不会显示楼上的表,即我选择了多少行。 其次,如果我从任何列中筛选任何数字,相同的数字将显示同一列中有多少行具有相同的数字。如果我选中了所有复选框,那么反向消息将显示我选中了多少行复选框。这里,问题是显示整个表行计数

  • 我正在建立一个电子商务网站。我的产品有点问题。 “添加到购物车”按钮对简单的产品效果很好,但对可变的产品不起作用。它给出了一个通知。 我到处找,在网上试了几条建议,但都不管用。所以我查看了WooCommerce源文件:。 在函数: 所以我尝试回声,和。它们都没有任何内容,因为当我回声时:它不会输出任何内容。 有什么建议吗?

  • 基于Woocommerce签出页面应答代码中向购物车添加产品的复选框字段,我的以下代码尝试非常有效:它允许客户通过单击复选框向购物车添加特定产品,然后通过AJAX更新,根据是否单击该产品来添加或删除该产品。 我面临的问题是存在漏洞。如果客户刷新签出页面,复选框将恢复为未选中状态,并允许客户添加第二个或更多产品(如果他们继续刷新)。 我还有一个功能,可以检查特定的产品是否在购物车中,并且工作正常。我

  • 我有一个自定义后类型设置称为艺术家。每个单个艺术家是一个页面(艺术家个人资料,如果你愿意),有一个通过高级自定义字段(ACF)的关系字段类型与该艺术家相关联的产品列表。我需要产品在艺术家页面上显示在他们的类别中。因此,在Elementor中,我需要指定一个查询筛选器ID,以简单地将产品划分为类别。 到目前为止我所尝试的 我试图通过自定义查询仅显示列表中特定类别的产品,因为我需要生成查询ID。 我一