在简单的产品中,只有当您将其更改为非“有库存”的任何内容时,才会显示库存状态。可以一直显示库存状态吗?
我尝试使用此代码:
add_filter( 'woocommerce_get_availability', 'custom_override_get_availability', 10, 2);
// The hook in function $availability is passed via the filter!
function custom_override_get_availability( $availability, $_product ) {
if ( $_product->is_in_stock() ) $availability['availability'] = __('In Stock', 'woocommerce');
return $availability;
}
但是由于某种原因这会覆盖我的自定义库存状态文本。
要始终在 WooCommerce 中显示库存状态,而不覆盖您的自定义状态,请使用以下命令:
add_filter( 'woocommerce_get_availability', 'filter_product_get_availability', 10, 2);
function filter_product_get_availability( $availability, $product ) {
if ( $product->get_stock_status() === 'instock' ) {
$availability['availability'] = wc_format_stock_for_display( $product );
} elseif ( $product->managing_stock() && $product->is_on_backorder( 1 )
&& ! $product->backorders_require_notification() ) {
$availability['availability'] = __('In Stock', 'woocommerce');
$availability['class'] = 'in-stock';
}
return $availability;
}
代码位于子主题的functions.php 文件中(或插件中)。它应该可以正常工作,不会给您的自定义状态带来麻烦。