WooCommerce, 實用技巧

無庫存允許下單 Backorder 修改提示

無庫存允許下單 Backorder 修改提示

在一個金流 Discord 討論留言板上看到有網友在詢問這個問題,看了看也忽然覺得這個修改應該不至於太難,改一改以後有可能某一天會用到。這種無庫存下單就像是預購的 FU 吧?只是顯示提示修改,或許可以像似應用在預購的模式,話不多說,立即開始:

無庫存允許下單 Backorder 修改提示

修改完之後會長這樣,原本會顯示「無庫存允許下單」一個很奇怪難以理解的意思,一般做法就是用翻譯的去改最快,但是就是要變換通知的話,當物品有庫存後又要顯示提示,這時程式就派上用場。

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2); function wcs_custom_get_availability( $availability, $_product ) { 
	// 有庫存與沒庫存的時候通知
	if ( $_product->is_in_stock() && ! $_product->backorders_allowed() ) { 
		$availability['availability'] .= __('目前有現貨', 'custom'); } 
	if ( $_product->is_in_stock() && $_product->backorders_allowed() ) { 
		$availability['availability'] = __('當有現貨時我們會立即通知您', 'custom'); }
	// 沒庫存的時候通知
	if ( ! $_product->is_in_stock() ) { $availability['availability'] .= __('當有現貨時我們會立即通知您', 'custom'); } 
	return $availability; }
無庫存允許下單 Backorder 修改提示

但是上面的只有顯示在「商品頁」沒改到購物車的地方,購物車會也會有一串一樣的字,接著要加上下面這串就能一起改到了。

// 翻譯購物車提示
function uni_transfer_wccart_backorder_text ( $text ) {
         if ($text == '允許無庫存下單'){$text = '當有現貨時我們會立即通知您';}
                return $text;
         }
add_filter( 'gettext', 'uni_transfer_wccart_backorder_text' );

就這樣,很簡單的