無庫存允許下單 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' );

就這樣,很簡單的

WooCommerce 清空購物車返回訊息+網址修改

WooCommerce 清空購物車返回訊息+網址修改

隨手筆記,我覺得我不知道民國幾年還會有機會用到這串修改語法。

這次的案例是客戶想修改清空購物車後,會有一顆按鈕「返回商店」網址是 /shop/

我個人是覺得客戶客製很多小地方其實不太必要,但遇到了就是得修改 🙁

WooCommerce 清空購物車返回訊息+網址修改
上圖是已經修改完成的樣子,心好累。

所幸修改很簡單,兩段語法可以解決這個部分,主要是利用「woocommerce_return_to_shop_redirect」與「woocommerce_return_to_shop_text」就可以處理了。

語法如下:

//修改返回SHOP網址
add_filter( 'woocommerce_return_to_shop_redirect', 'uni_woo_return_to_shop_button_modify' );
function uni_woo_return_to_shop_button_modify() {
    $url = 'https://www.your-url.com'; 
    return $url;
}

//修改按鈕文字
add_filter('woocommerce_return_to_shop_text', 'uni_woo_shop_button_text_modify');
function uni_woo_shop_button_text_modify() {
    $shop_button_text = "回到首頁"; 
    return $shop_button_text;
}

woocommerce_return_to_shop_redirect 負責處理網址的修改,預設是「/shop」商品頁面,我們直接改網址就可以了。

Wordfence 干擾影響登入錯誤題示訊息翻譯

Wordfence 干擾影響登入錯誤題示訊息翻譯

對,你沒有看錯,我也沒有寫錯,我今天要說的是「Wordfence」這套安全防火牆外掛影響到了 WooCommerce 的登入錯誤提示訊息,預設 WC 示有翻譯的,但不知道為什麼安裝了 Wordfence 後會影響到該字串的翻譯,都會變強制英文的。

Wordfence 干擾影響登入錯誤題示訊息翻譯
就很莫名其妙,你即使找遍了 WC 的翻譯都是正確無誤的

今天我們只要用 Code Snippets 插入以下程式碼就好了

function uni_wc_login_error_translation( $translated, $original, $domain ) {
    
    switch ($original) {
        case '<strong>ERROR</strong>: The username or password you entered is incorrect. <a href="%2$s" title="Password Lost and Found">Lost your password</a>?':
            $translated = '<strong>錯誤</strong>: 使用者的帳號或者密碼錯誤 <a href="%2$s" title="忘記密碼?">忘記密碼</a>?';
            break;
    }
    
    return $translated;
}

add_filter( 'gettext', 'uni_wc_login_error_translation', 10, 3 );

以上很好理解,就直接抓取那串字串並且翻譯替代:

case ‘<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=”%2$s” title=”Password Lost and Found”>Lost your password</a>?‘:

紅字就是要抓取的字串,今天我們的兇手就是這一串的語法,調整一下

$translated = 後面的就是要翻譯的文字填上

Wordfence 干擾影響登入錯誤題示訊息翻譯

是不是很簡單呢?

翻譯 WooCommerce 移除購物車商品跳出英文提示

翻譯 WooCommerce 移除購物車商品跳出英文提示

這個有點奇怪,原本以為 WooCommerce 中文語系應該都有翻譯的,卻沒有在其翻譯檔案裡找到這個字串,只好透過一些語法來達到此方式。

翻譯 WooCommerce 移除購物車商品跳出英文提示
這個是原本跳出來的 POPUP 視窗提示,上頭寫著「Are you sure you want to remove this item from cart?」

我們今天要透過 Code Snippets 去翻譯,避免動到 WC 的程式,不然每次更新又要被蓋掉了,很簡單,在這裡面我們加上以下語法:

// 翻譯購物車提示
function uni_transfer_wccart_text ( $text ) {
         if ($text == 'Are you sure you want to remove this item from cart?'){$text = '你要將此商品從購物車移除嗎?';}
                return $text;
         }
add_filter( 'gettext', 'uni_transfer_wccart_text' );

接著啟動它,就可以完成翻譯囉

翻譯 WooCommerce 移除購物車商品跳出英文提示
是不是很簡單呢?
WooCommerce 移除 “會員中心” 後台修改運送地址之姓氏欄位驗證

WooCommerce 移除 “會員中心” 後台修改運送地址之姓氏欄位驗證

一樣的都是遇到案例寫下方式,以免以後老人癡呆了又忘了這個功能

首先要弄清楚兩個地方,一個是驗證姓氏的地方,另一個是欄位的顯示必須填寫該欄位的文字與 * 號

可以很土炮的用 display:none; 隱藏來個掩耳盜鈴,但是當你按下儲存後還是會遇到一樣的問題唷

因此我們只要在 functions.php 內加入 CODE 或者 Code Snippets 內新增以下程式碼

add_filter( 'woocommerce_shipping_fields' , 'custom_override_shipping_fields' );

function custom_override_checkout_fields( $fields ) {
  unset($fields['shipping']['shipping_last_name']);
  return $fields;
}

function custom_override_shipping_fields( $fields ) {
  unset($fields['shipping_last_name']);
  return $fields;
}

這樣就可以順利一次移除掉姓氏這個欄位的驗證要求,加上順便也讓他消失不出現省去 CSS 的工

Woocommerce 修改相關商品項目標題屬性

Woocommerce 修改相關商品項目標題屬性

這邊說的是相關商品標題四個大字區塊下面的商品名稱屬性,網路上都是教你怎麼改「相關商品」四個字的 H2 變成 H3 H4 等等的

今天因為一個案例需要隱藏起來該字詞,因為該案例的商品內容性質並沒有太多內容可填充,顯得空洞會造成版面撐不起來之問題

反正就是這邊教你怎麼修改那邊的商品標題屬性,打開你的佈景主題資料夾下面的 fuctions.php

remove_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_title', 10 );
add_action('woocommerce_shop_loop_item_title', 'abChangeProductsTitle', 10 );
function abChangeProductsTitle() {
echo '<h3 class="woocommerce-loop-product__title">' . get_the_title() . '</h3>';
}

貼上上面的屬性內容就可以了,這樣就變 H3 了,想換怎樣都自行變動即可