我需要将“ #in stock ”文字更改为“#deals left ”。
我将以下代码添加到function.php文件中,但这会删除实际的数字。
add_filter( 'woocommerce_get_availability', 'custom_get_availability', 1, 2);
function custom_get_availability( $availability, $_product ) {
//change text "In Stock' to 'SPECIAL ORDER'
if ( $_product->is_in_stock() ) $availability['availability'] = __('SPOTS LEFT', 'woocommerce');
//change text "Out of Stock' to 'SOLD OUT'
if ( !$_product->is_in_stock() ) $availability['availability'] = __('SOLD OUT', 'woocommerce');
return $availability;
}
有人可以帮忙吗?
答案 0 :(得分:8)
你可以尝试下面的代码:
add_filter( 'woocommerce_get_availability', 'custom_get_availability', 1, 2);
function custom_get_availability( $availability, $_product ) {
global $product;
$stock = $product->get_total_stock();
if ( $_product->is_in_stock() ) $availability['availability'] = __($stock . ' SPOTS LEFT', 'woocommerce');
if ( !$_product->is_in_stock() ) $availability['availability'] = __('SOLD OUT', 'woocommerce');
return $availability;
}
答案 1 :(得分:0)
在WC> 3.0中效果更好。只需将get_total_stock更改为get_stock_quantity
> :set -XTypeApplications
> contains :: (a -> Bool) -> [a] -> Bool; contains = error "TODO: implement 'contains'"
> :type contains @Char
contains @Char :: (Char -> Bool) -> [Char] -> Bool
> :type contains @Int
contains @Int :: (Int -> Bool) -> [Int] -> Bool
> :t map
map :: (a -> b) -> [a] -> [b]
> :t map @Double
map @Double :: (Double -> b) -> [Double] -> [b]
> :t map @Double @Int
map @Double @Int :: (Double -> Int) -> [Double] -> [Int]