2017-02-20 149 views
1

因此,這裏去... 我有一個WordPress的網站,並使用woocommerce等等我想改變產品頁面的延期消息,像「請允許2 - 4周交付這項目「,我有問題。修改WooCommerce缺貨消息

我還希望在購物車頁面中顯示相同或類似的消息,其中通常在項目名稱下顯示缺貨消息。

或者,但不是我的偏好,只是從購物車頁面完全隱藏延期購物消息,但仍然在產品頁面上顯示。

我通過插件輸入php代碼,而不是使用兒童主題或與其他東西混雜。我通常管理得很好,但完全陷入了困境。我昨天花了幾個小時,並設法使我的網站和一切崩潰!大聲笑...

我認爲它會給我的網站更專業的外觀。

在我的網站上的延期交貨產品之一的鏈接是下面,以便您可以確切地看到我在找什麼。

https://ascentsofscotland.co.uk/product/cormag-celtic-bangle/

因爲我開始感到沮喪的東西,在理論上應該簡單...任何幫助是極大的這種讚賞(我認爲它實際上應該是woocommerce一個可定製的部分反正!)

在此先感謝您的所有天才人士!

Stu

回答

3

我認爲您需要篩選woocommerce_get_availability_text。將此添加到您的主題的functions.php或添加到特定於網站的「snippets」插件。

function so_42345940_backorder_message($text, $product){ 
    if ($product->managing_stock() && $product->is_on_backorder(1)) { 
     $text = __('Please allow 2 – 4 weeks for delivery of this item', 'your-textdomain'); 
    } 
    return $text; 
} 
add_filter('woocommerce_get_availability_text', 'so_42345940_backorder_message', 10, 2); 
+0

謝謝你...不幸的是它沒有工作。我通過複製和粘貼添加了它,但延期付款消息在網站的所有區域中保持完全相同。任何其他想法? – Stu

+0

您的主題是否對該消息進行了硬編碼?你有任何模板覆蓋?你可以暫時禁用它們(WooCommerce-> System Status> Tools> Template Debug Mode)。如何完全切換你的主題。我仔細檢查了過濾器在2.6.14中可用,所以這應該起作用(理論上)。 – helgatheviking

+1

我正在使用插件來輸入Arthur Gareginyan的代碼(我的自定義函數)。對於我需要複製和粘貼代碼的其他所有事情來說,它工作得很好。雖然我自己在Mystile主題上構建了這個網站,但我仍然認爲我的自己有點新手,所以我可能需要做別的事情?我應該嘗試在其他地方輸入代碼嗎? – Stu

0

下面是一個在同一個,在這兩種產品頁面和購物車的工作(我用的是免費的「代碼片段」插件來處理這個問題,而不是與functions.php的文件搞亂):

function alt_message() { 
    return "This item may take 3-4 weeks to deliver"; 
} 

function backorder_text($availability) { 
$altmessage = alt_message(); 
foreach($availability as $i) { 
$availability = str_replace('Available on backorder', $altmessage, $availability); 
} 
return $availability; 
} 
add_filter('woocommerce_get_availability', 'backorder_text'); 


function woocommerce_custom_cart_item_name($_product_title, $cart_item, $cart_item_key) { 
$altmessage = alt_message(); 
    if ($cart_item['data']->backorders_require_notification() && $cart_item['data']->is_on_backorder($cart_item['quantity'])) { 
$_product_title .= __(' - '. $altmessage, 'woocommerce') ; 
} 
return $_product_title; 
} 
add_filter('woocommerce_cart_item_name', 'woocommerce_custom_cart_item_name', 10, 3); 

另外補充你的孩子主題

.backorder_notification{ 
display: none; 
} 
.backorder_notification.custom{ 
display: block; 
} 

PS的style.css文件下面的CSS代碼:如果您沒有添加CSS代碼那麼它將無法工作。

貸款到:http://www.northmore.net/change-backorder-text-woocommerce/