我有一个WooCommerce 并且我想管理多个自定义库存状态,例如>“交货15天”,“交货7天”。
首先,我找到了这段代码(我不是开发人员),该代码让我在产品循环页面的“添加到购物车”按钮下显示“有货”或“无货”。
//Ajoute "En stock" sous chaque produit
function show_stock() {
global $product;
if ( $product->get_stock_quantity() ) { // if manage stock is enabled
if ( number_format($product->get_stock_quantity(),0,'','') > 0 ) { // if in stock
echo '<div class="remaining" style="color:green;">En stock</div>';
} else {
echo '<div class="remaining" style="color:red;">Rupture</div>';
}
}
}
add_action('woocommerce_after_shop_loop_item','show_stock', 10);
效果很好。
经过研究,我添加了
add_action ('woocommerce_before_add_to_cart_form','show_stock');
为了在单个产品页面中也显示它,我使CSS消失了原来的“现货”。没关系。
现在,我找到了一种解决方案,可以管理一些自定义股票消息以在相同位置显示。 然后,我将管理具有特定数量的库存的自定义库存消息。
例如,如果我存入1000只库存,这将使我返回“ 1个月内发货” 如果我存入2000张库存,这将使我“在7天内交付”
首先,我需要WooCommerce停止管理库存,因为我的库存数量保持固定。 我将取消选中“管理库存”,然后输入特定的库存数量以返回自定义消息。
我在预览代码中看到了库存管理的条件是
if ( $product->get_stock_quantity() ) { // if manage stock is enabled
但是现在我需要相反的意思,条件是是否禁用管理库存(取消选中)
if ( ! $product->managing_stock()
所以现在我的新代码仍然存在,但是出了点问题,因为如果我取消选中管理库存并放入1000个库存,则什么都不会显示
//Ajoute "En stock" sous chaque produit
function show_stock() {
global $product;
if ( $product->get_stock_quantity() ) { // if manage stock is disable
if ( number_format($product->get_stock_quantity(),0,'','') = 1000 ) { // if stock = 1000 return Livraison sous 7 jours
echo '<div class="remaining" style="color:green;">Livraison sous 7 jours</div>';
}
elseif ( number_format($product->get_stock_quantity(),0,'','') = 2000 ) { // if stock = 2000 return Livraison sous 1 mois
echo '<div class="remaining" style="color:#f2cd00;">Livraison sous 1 mois</div>';
}
}
}
add_action('woocommerce_after_shop_loop_item','show_stock', 10);
add_action ('woocommerce_before_add_to_cart_form','show_stock');
这是因为既然我不管理库存,我不能接受,就不能计算库存数量?