[英]Change product stock availability texts in Woocommerce
I am trying to change the in stock text next to the quantity available in woocommerce.我正在尝试更改 woocommerce 中可用数量旁边的库存文本。 I am using the stock management in product variations.我在产品变体中使用库存管理。
I tried this code below:我在下面尝试了这段代码:
// change stock text
add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $variation ) {
// Change In Stock Text
if ( $variation->is_in_stock() ) {
$availability['availability'] = __('Available!', 'woocommerce');
}
// Change Out of Stock Text
if ( ! $variation->is_in_stock() ) {
echo '-------------------------';
echo __('Sold Out', 'woocommerce');
$availability['availability'] = __('Sold Out', 'woocommerce');
}
return $availability;
}
The code above changes the text but it does not pull in the stock quantity number from the variation stock manager.上面的代码更改了文本,但不会从变体库存管理器中提取库存数量。
Any help is appreciated.任何帮助表示赞赏。
The following code will handle all cases including the stock amount display with your custom texts:以下代码将处理所有情况,包括带有自定义文本的库存量显示:
add_filter( 'woocommerce_get_availability_text', 'customizing_stock_availability_text', 1, 2);
function customizing_stock_availability_text( $availability, $product ) {
if ( ! $product->is_in_stock() ) {
$availability = __( 'Sold Out', 'woocommerce' );
}
elseif ( $product->managing_stock() && $product->is_on_backorder( 1 ) )
{
$availability = $product->backorders_require_notification() ? __( 'Available on backorder', 'woocommerce' ) : '';
}
elseif ( $product->managing_stock() )
{
$availability = __( 'Available!', 'woocommerce' );
$stock_amount = $product->get_stock_quantity();
switch ( get_option( 'woocommerce_stock_format' ) ) {
case 'low_amount' :
if ( $stock_amount <= get_option( 'woocommerce_notify_low_stock_amount' ) ) {
/* translators: %s: stock amount */
$availability = sprintf( __( 'Only %s Available!', 'woocommerce' ), wc_format_stock_quantity_for_display( $stock_amount, $product ) );
}
break;
case '' :
/* translators: %s: stock amount */
$availability = sprintf( __( '%s Available!', 'woocommerce' ), wc_format_stock_quantity_for_display( $stock_amount, $product ) );
break;
}
if ( $product->backorders_allowed() && $product->backorders_require_notification() ) {
$availability .= ' ' . __( '(can be backordered)', 'woocommerce' );
}
}
else
{
$availability = '';
}
return $availability;
}
Code goes in function.php file of your active child theme (or active theme).代码位于活动子主题(或活动主题)的 function.php 文件中。 Tested and works.测试和工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.