本篇文章更新時間:2019/03/11
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


今天碰到一個問題是 [WordPress] 調整適合 WooCommerce 在台銷售結帳頁欄位(含地址郵遞區號選擇) 這篇文章的延伸問題:開啟國家選擇欄位時,欄位會跑版。

經查詢是 address-i18n.js 這隻 JavaScript 在背後作用導致。

WooCommerce Address i18n

原理就是把本地化過的欄位資料去綁定選擇國家的事件上,讓使用者於選擇國家的時候切換不同的結帳欄位組合。

拿掉的方式如下:

//取消選擇國家會改變本地化結帳欄位的功能
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);

上面這個範例程式碼還不完整,但也其實沒這麼方便。效果如下圖:

WooCommerce 結帳頁面縣市欄位

所以個人結論:這功能還不到位,還是乖乖套我寫的那版本吧XD


Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon