今天碰到一個問題是 [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

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

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