关于只做售后产品展示的问题和答案很多,但无论我尝试什么,都无济于事。WooCommerce:展示店内的销售产品
我有以下查询被应用
function my_modify_main_query($query) {
if ($query -> query['post_type'] == 'product' && $query -> is_main_query() && is_shop()) {// Run only on the shop
if (isset($_GET['sale'])):
$query -> set('meta_query',
array(
'relation' => 'OR',
array(// Simple products type
'key' => '_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
),
array(// Variable products type
'key' => '_min_variation_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
)
)
);
endif;
}
}
// Hook my above function to the pre_get_posts action
add_action('pre_get_posts', 'my_modify_main_query');
查询本身,但问题是。 如果产品是销售价格的变量,那么产品将被更改为简单产品,但“_min_variation_sale_price”元值仍在数据库中。
有没有人知道这个解决方法?我相信这是一个错误,但他们的支持目前已关闭。
谢谢。
编辑
我想我需要的是一种方法,只检查_sale_price如果该产品是在“简单”或“外部”的条款,然后做_min_variation_sale_price相似。
我在他们的github上创建了一个问题。 https://github.com/woothemes/woocommerce/issues/10096
编辑
问题是使用@helgatheviking答案固定。 虽然,请注意,要彻底解决问题,您必须删除变体,保存,更改类型,保存,运行delete_transient('wc_products_onsale');
只有这样才能为我工作。
不幸的是,我试过了。 – Damian
下一次,请提及您*有*尝试过的所有事情,以减少重复工作。您是否暗示'wc_get_product_ids_on_sale()'没有检索出售的可变产品? – helgatheviking
当您将产品保存为销售变量时,请将其更改为简单而不销售,然后返回到该数组中。 – Damian