2014-03-06 70 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; 
} 
相關問題