Woocommerce 对最后缺货的产品进行分类
StackOverflow中有很多答案,但是旧的答案,没有一个能为我提供最新版本的Woocommerce 我的页面已经按最近的产品进行了排序,但我喜欢将所有售出的产品移至最后一页 我尝试过的最后代码: 1: 2:Woocommerce 对最后缺货的产品进行分类,woocommerce,Woocommerce,StackOverflow中有很多答案,但是旧的答案,没有一个能为我提供最新版本的Woocommerce 我的页面已经按最近的产品进行了排序,但我喜欢将所有售出的产品移至最后一页 我尝试过的最后代码: 1: 2: 自从woocommerce 3以来,产品库存状态不再作为元数据处理……请看,这将使您走上正确的轨道。@LoicTheAztec,感谢您的帮助,您能否帮助我在回答中实现这一点?非常感谢您的时间我一直在努力,但我还没有找到让它按照您的意愿工作的方法。如果我有一些功能性的东西,我当然会回答。
自从woocommerce 3以来,产品库存状态不再作为元数据处理……请看,这将使您走上正确的轨道。@LoicTheAztec,感谢您的帮助,您能否帮助我在回答中实现这一点?非常感谢您的时间我一直在努力,但我还没有找到让它按照您的意愿工作的方法。如果我有一些功能性的东西,我当然会回答。谢谢,我还没有在网上看到任何关于这个的东西,我想这个改变把排序的事情搞砸了。无论如何谢谢你!
add_action( 'pre_get_posts', function ( $q ) {
if ( $q->is_main_query() // Only target the main query
&& $q->is_post_type_archive() // Change to suite your needs
) {
$q->set( 'meta_key', '_stock_status' );
$q->set( 'orderby', 'meta_value' );
$q->set( 'order', 'ASC' );
}
}, PHP_INT_MAX );
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);