【问题标题】:List Featured products and On Sale products without a shortcode in Woocommerce在 Woocommerce 中列出没有短代码的特色产品和特价产品
【发布时间】:2018-09-08 16:39:02
【问题描述】:

我了解 WooCommerce 提供了用于特色和销售产品的短代码。

但是,我可以在要显示它们的页面或小部件上使用短代码。

我真正想做的是创建一个销售链接和一个特色产品链接,分别列出特价产品和特色产品。

如果没有列出产品类别的短代码,我是否可以做到这一点?

【问题讨论】:

  • 欢迎来到stackoverflow。请访问该站点的tour,以了解 stackoverflow 的工作原理以及如何提出好的问题。这不是免费的代码编写服务。所以参观结束后请edit你的问题。包括您尝试过的代码minimal reproducible example,以及任何错误消息。问具体问题。大多数人乐于提供帮助,但不想为您工作。诸如“我该如何做 x?”之类的问题。没有显示出任何研究工作的结果很可能会被忽略。

标签: php wordpress woocommerce query-string product


【解决方案1】:

以下代码会将来自 woocommerce 产品查询的产品过滤到:

  • 使用https://www.example.com/shop/?featured=1查询字符串显示特色产品
  • 使用https://www.example.com/shop/?onsale=1查询字符串显示特价商品

代码:

// Featured products
add_filter( 'woocommerce_product_query_tax_query', 'filter_featured_products', 20, 1 );
function filter_featured_products( $tax_query ){
    if( isset($_GET['featured']) && $_GET['featured'] ){
        $tax_query[] = array(
            'taxonomy'  => 'product_visibility',
            'field'     => 'name', // name or term_id
            'terms'     => array('featured')
        );
    }
    return $tax_query;
}

// On sale products    
add_filter( 'woocommerce_product_query_meta_query', 'filter_on_sale_products', 20, 1 );
function filter_on_sale_products( $meta_query ){
    if( isset($_GET['onsale']) && $_GET['onsale'] ){
        $meta_query[] = array(
            'key' => '_sale_price',
            'value' => 0,
            'compare' => '>'
        );
    }
    return $meta_query;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

【讨论】:

  • 非常感谢。这正是我一直在寻找的。它完全符合我对特色产品的要求。但是,我注意到非特价商品显示为特价商品。在可能超过 50 件商品中,只有 2 件被展示。不知道为什么。有没有办法通过检查(销售价格
  • 嗨@LoicTheAztec - 这已经有几年历史了,但这正是我正在寻找的。不幸的是,它似乎不起作用。你能建议吗?照原样,我的查询显示为空白。我也不确定这是否适用于可变产品。提前谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
相关资源
最近更新 更多