2014-03-06 47 views
1

当前,在单一产品页面上,库存文本显示为“#库存”。在WooCommerce上更改“库存”文本

我想改变一下代码,但还没有找到解决方案。我无法找到那行代码来自哪个确切文件。 price.php似乎有这个

<link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" /> 

但它什么也没做。当我检查元素时,该类被称为“库存”。

我试过这段代码中的functions.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; 
    } 

不过,我希望能够改变这一点。我想在“SPOTS LEFT”前添加库存数量,但我不知道应该在哪里放置它。它似乎并不像php可以进入('')。

我尝试这样做:

<?php echo $product->get_stock_quantity(); ?> 

我要带它多了一个缺口,实际上有多少点只剩如果数量少于6否则的状态,状态销售一空。 5点以上的任何东西都不会显示。 我不确定确切的语法是什么!任何建议都会很棒。

回答

2
// WooCommerce Stock message 
add_filter('woocommerce_get_availability', 'mw_get_availability', 1, 2); 

function mw_get_availability($availability, $_product) { 

//change text "In Stock' to 'SPECIAL ORDER' 
global $product; 
if ($_product->is_in_stock() && $product->get_stock_quantity() < 6) $availability['availability'] = $product->get_stock_quantity().' '.__('SPOTS LEFT', 'woocommerce'); 

//change text "Out of Stock' to 'SOLD OUT' 
if (!$_product->is_in_stock()) $availability['availability'] = __('SOLD OUT', 'woocommerce'); 

return $availability; 

} 
0

这是SotirisK的答案的轻微扩展,它解释了在未选择manage stock选项时更改消息的原因。

// WooCommerce Stock message 

add_filter('woocommerce_get_availability', 'mw_get_availability', 1, 2); 

function mw_get_availability($availability, $_product) { 

    global $product; 

    // change text "In Stock' to 'SPECIAL ORDER' when quantity more than 6 
    if ($_product->is_in_stock() && $product->get_stock_quantity() > 6) $availability['availability'] = $product->get_stock_quantity().' '.__('Special Order', 'woocommerce'); 

    // change text to n Spots Left, where n is the quantity 
    if ($_product->is_in_stock() && $product->get_stock_quantity() <= 6) $availability['availability'] = $product->get_stock_quantity() . __(' Spots Left); 

    // change text "Out of Stock' to 'SOLD OUT' 
    if (!$_product->is_in_stock()) $availability['availability'] = __('SOLD OUT', 'woocommerce'); 

    // change text "In Stock' to 'Special Order' for products with unmanaged stock 
    if (!$_product->managing_stock() && $_product->is_in_stock()) $availability['availability'] = __('In Stock', 'woocommerce'); 

    return $availability; 
} 
相关问题