Eli*_*rew 4 php wordpress product shortcode woocommerce
在首页上使用Woocommerce Recent Products短代码时,我需要排除显示缺货商品.
[recent_products]
Run Code Online (Sandbox Code Playgroud)
是否有可能创建一个类似hide_outofstock="true"或类似的规则来阻止Out of Stock产品展示?
我已经在网上寻找关于如何处理这个问题的想法,而我根本就没有编码器,但通常我能够坦率地解决这个问题.但是,现在我很难过.所有和任何帮助将不胜感激.
我不能通过WooCommerce设置页面隐藏所有缺货产品,因为它们需要在网站的其他区域中可见.
使用"隐藏"而不是"不拉"缺货产品的代码只显示产品显示的空白区域.
需要在库存水平经常变化时动态工作 - 按产品ID手动限制将花费太长时间.
2018年6月更新 (产品类型兼容性)
在WC_Shortcodes类源代码中进行一些搜索后,这是正确的方法:
add_filter( 'woocommerce_shortcode_products_query', function( $query_args, $atts, $loop_name ){
if( $loop_name == 'recent_products' ){
$query_args['meta_query'] = array( array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => 'NOT LIKE',
) );
}
return $query_args;
}, 10, 3);
Run Code Online (Sandbox Code Playgroud)
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.
在WooCommerce 3+上测试并且有效.