gpt4 book ai didi

wordpress - WooCommerce:仅显示商店中的特价产品

转载 作者:行者123 更新时间:2023-12-02 22:03:36 24 4
gpt4 key购买 nike

我需要创建一个产品存档页面(通常是WooCommerce中的商店页面),但仅显示特价产品。基本上它应该使用与 archive-product.php 中相同的模板布局。主菜单中会有一个链接指向此页面。我该怎么办?

更新

我设法过滤掉特价产品,并将以下代码放置在 if (have_posts() ) : 行上方...

$args = array(
'post_type' => 'product',
'order' => 'ASC',
'paged' => $paged,
'meta_query' => array(
array(
'key' => '_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
)
)
);

query_posts( $args );

代码放置在 archive-product.php副本中,我将其命名为 archive-product_sale.php 并将其制作为 <强>页面模板

但是,这仅适用于简单产品类型,我需要它同时适用于简单产品和可变产品类型。

最佳答案

@mirus 关于短代码的回答让我想到了检查 WooCommerce 如何仅查询在售商品。显然,WooCommerce 有一个 wc_get_product_ids_on_sale() 函数,该函数将返回在售商品的 ID。然后我们可以使用 post__in 参数轻松调整查询,以仅返回那些特定的项目。

WooCommerce 在 class-wc-query.php 类中有一个 woocommerce_product_query Hook ,允许我们在运行之前修改查询......在 pre_get_posts 上运行,这是修改查询的常用位置。使用 Woo 的钩子(Hook)仅意味着您让它们处理有关何时应应用此查询修改的大部分条件逻辑。

add_action( 'woocommerce_product_query', 'so_20990199_product_query' );

function so_20990199_product_query( $q ){

$product_ids_on_sale = wc_get_product_ids_on_sale();

$q->set( 'post__in', $product_ids_on_sale );

}

关于wordpress - WooCommerce:仅显示商店中的特价产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20990199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com