本篇文章更新時間:2019/03/11
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
今天碰到一個問題是 [WordPress] 調整適合 WooCommerce 在台銷售結帳頁欄位(含地址郵遞區號選擇) 這篇文章的延伸問題:開啟國家選擇欄位時,欄位會跑版。
經查詢是 address-i18n.js
這隻 JavaScript 在背後作用導致。
原理就是把本地化過的欄位資料去綁定選擇國家的事件上,讓使用者於選擇國家的時候切換不同的結帳欄位組合。
拿掉的方式如下:
//取消選擇國家會改變本地化結帳欄位的功能
function mxp_remove_wc_address_i18n_script() {
if (is_checkout() || is_account_page()) {
wp_deregister_script('wc-address-i18n');
}
}
add_action('wp_head', 'mxp_remove_wc_address_i18n_script');
一般情況其實也是不用去管它,但如果有開啟了選擇國家欄位的話,整個欄位的控制權會被覆寫,這點要注意。
目前預設的結帳欄位下,如果要「再方便一點點」,看起來是補上 woocommerce_states
這個 hook ,來把縣市的部分新增下拉選單。
function mxp_custom_tw_woocommerce_states($states) {
$states['TW'] = array('Taipei City' => '台北市', 'Miaoli' => '苗栗縣');
return $states;
}
add_filter('woocommerce_states', 'mxp_custom_tw_woocommerce_states', 10, 1);
上面這個範例程式碼還不完整,但也其實沒這麼方便。效果如下圖:
所以個人結論:這功能還不到位,還是乖乖套我寫的那版本吧XD