Wordpress 低库存产品

Wordpress 低库存产品,wordpress,woocommerce,Wordpress,Woocommerce,对于我的网站,我需要一个页面只显示库存低的产品,就像选择只显示排名靠前、销售额最高、最近的产品一样。 我找到一个代码来显示缺货。。所以我只是将“outofstock”值替换为“lowinstock”,但这不起作用,它显示了所有的产品 add_shortcode( 'out_of_stock_products', 'bbloomer_out_of_stock_products_shortcode' ); function bbloomer_out_of_stock_products_sho

对于我的网站,我需要一个页面只显示库存低的产品,就像选择只显示排名靠前、销售额最高、最近的产品一样。 我找到一个代码来显示缺货。。所以我只是将“outofstock”值替换为“lowinstock”,但这不起作用,它显示了所有的产品

add_shortcode( 'out_of_stock_products', 'bbloomer_out_of_stock_products_shortcode' );
   
function bbloomer_out_of_stock_products_shortcode() {
 
   $args = array(
      'post_type' => 'product',
      'posts_per_page' => -1,
      'post_status' => 'publish',
      'meta_query' => array(
         array(
            'key' => '_stock_status',
            'value' => 'outofstock',
         )
      ),
      'fields' => 'ids',
   );
    
   $product_ids = get_posts( $args ); 
   $product_ids = implode( ",", $product_ids );
    
   return do_shortcode("[products ids='$product_ids']");
 
}
你有什么解决办法吗??
感谢您的帮助

您可以筛选产品ID,并检查库存量是否低于低库存阈值但大于零(缺货)

add_shortcode('out_of u stock_products'、'bbloomer_out_of u stock_products_shortcode');
函数bbloomer\u out\u of\u stock\u products\u shortcode(){
$args=数组(
“post_类型”=>“产品”,
“每页帖子数”=>-1,
“发布状态”=>“发布”,
“字段”=>“ID”,
);
$product\U ids=获取帖子($args);
foreach($key=>$product\u id的产品标识){
如果($product=wc\U get\U product($product\U id)){
$stock=$product->get_stock_quantity();
$low_stock_amount=$product->get_low_stock_amount();
如果(!empty($stock)和&!empty($low_stock_amount)){
如果($stock>$low|u stock|u amount | |$stock<1){
未设置($product_ID[$key]);
}
}else{//没有足够的库存数据
未设置($product_ID[$key]);
}
}
}
$product\U ids=内爆(“,”,$product\U ids);
返回do_短码(“[products ids='$product_ids']”);
}

感谢您的回复,但不幸的是,这也显示了所有的产品,它没有将产品过滤为“库存不足”,我在本地测试了这一点,并且有效。也许你的低库存门槛设定得很高?不。。只有两个。我在我的一个页面上添加了这个短代码[缺货产品]。。但正如我所说,它会退回所有已发布的产品。是否有任何特定的设置配置要执行??确保您的缓存已清除,并且您正在使用
[缺货产品]
快捷码。
add_shortcode( 'out_of_stock_products', 'bbloomer_out_of_stock_products_shortcode' );
function bbloomer_out_of_stock_products_shortcode() {
    $args = array(
        'post_type' => 'product',
        'posts_per_page' => -1,
        'post_status' => 'publish',
        'fields' => 'ids',
    );

    $product_ids = get_posts( $args ); 
    foreach ( $product_ids as $key => $product_id ) {
        if ( $product = wc_get_product( $product_id ) ) {

            $stock = $product->get_stock_quantity();
            $low_stock_amount = $product->get_low_stock_amount();

            if ( !empty( $stock ) && !empty( $low_stock_amount ) ) {
                if ( $stock > $low_stock_amount || $stock < 1 ) {
                    unset( $product_ids[$key] );
                }
            } else { //Not enough stock data
                unset( $product_ids[$key] );
            }

        }
    }
    $product_ids = implode( ",", $product_ids );
    return do_shortcode("[products ids='$product_ids']");
}