我想在下拉菜单中显示可变产品的库存状态,包括“缺货”,因为我网站上的大多数产品都是缺货而不是缺货。
我尝试了How to add variation stock status to Woocommerce product variation dropdown中的答案,但是,每个变量都列为“in stock”,因为产品设置为允许缺货。
我想合并检查实际库存水平如下,但我不能让它与上述链接正常工作。

$var_stock_count = $variation->get_stock_quantity();

// if there are 0 or less, display 'on backorder'
if( $var_stock_count <= 0 ) {
   return ' - (On Backorder)';
}
else {
   return ' - (In Stock)';
}

我需要帮助把这两段代码合并在一起。谢谢您!

最佳答案

此更新功能将处理缺货订单上的产品(当库存数量小于1时):

// Function that will check the stock status and display the corresponding additional text
function get_stock_status_text( $product, $name, $term_slug ){
    foreach ( $product->get_available_variations() as $variation ){
        if($variation['attributes'][$name] == $term_slug ) {
            $is_in_stock = $variation['is_in_stock'];
            $backordered = get_post_meta( $variation['variation_id'], '_backorders', true );
            $stock_qty   = get_post_meta( $variation['variation_id'], '_stock', true );
            break;
        }
    }
    $stock_status_text = $is_in_stock == 1 ? ' - (In Stock)' : ' - (Out of Stock)';
    return $backordered !== 'no' && $stock_qty <= 0 ? ' - (On Backorder)' : $stock_status_text;
}

代码放在活动子主题(或活动主题)的function.php文件中。测试和工作。
替换this answer thread上的第一个函数:
你会得到如下信息:
php - 向Woocommerce可变产品下拉列表中添加缺货库存状态-LMLPHP

10-06 05:05