Woocommerce 对最后缺货的产品进行分类

Woocommerce 对最后缺货的产品进行分类,woocommerce,Woocommerce,StackOverflow中有很多答案,但是旧的答案,没有一个能为我提供最新版本的Woocommerce 我的页面已经按最近的产品进行了排序,但我喜欢将所有售出的产品移至最后一页 我尝试过的最后代码: 1: 2: 自从woocommerce 3以来,产品库存状态不再作为元数据处理……请看,这将使您走上正确的轨道。@LoicTheAztec,感谢您的帮助,您能否帮助我在回答中实现这一点?非常感谢您的时间我一直在努力,但我还没有找到让它按照您的意愿工作的方法。如果我有一些功能性的东西,我当然会回答。

StackOverflow中有很多答案,但是旧的答案,没有一个能为我提供最新版本的Woocommerce

我的页面已经按最近的产品进行了排序,但我喜欢将所有售出的产品移至最后一页

我尝试过的最后代码:

1:

2:


自从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);