[WooCommerce] 重置運送物流選項或指定物流方式

本篇文章更新時間:2021/06/28
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


這需求我以為以前寫過文章筆記。找了一下沒發現就來寫!

如同標題所述,不論是消費時希望不要記憶上一次的物流方式或是開發時想測試不同情境,都有這個「指定」的需求在。

WooCommerce 後台金流或物流方式都可以用滑鼠點著選項上下拖曳排序,這已經能讓基本的排序實現,先前也筆記過幾篇付款方式與物流運送方式的排序文章:

本篇方法如下:

function mxp_reset_previous_chosen_shipping_method() {
    // 如果正在 結帳頁面 而且 不是WC結帳的端點路徑(收到訂單、查看訂單..) 而且 顧客已登入 的情況下
    if( is_checkout() && ! is_wc_endpoint_url() && is_user_logged_in() ) {
        // 指定預設使用運送物流
        WC()->session->set( 'chosen_shipping_methods', array('flat_rate:14') );
    }
}
add_action( 'template_redirect', 'mxp_reset_previous_chosen_shipping_method' );

本篇為概念的筆記,實際上述程式碼運用還要再調整,切勿直接套用。

關鍵其實就是 template_redirect 這個 Hook 的觸發時機。會在換頁面的時候進行順序很前面的程式運作影響。也可以在這個 Hook 客製化一些參數,來指定呈現選項的結果。

例如: https://www.mxp.tw/checkout/?shipping=1&billing=2 這兩個 shipping & billing 參數可以作為傳遞「指定」運送方法與物流運送方法的操作。

當然常見的瀏覽連結就帶入優惠券 Coupon 也是可以透過這邊來一起完成!

Ref: Reset previous chosen shipping method in Woocommerce checkout page


Share:

作者: Chun

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

發佈留言

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


文章
Filter
Apply Filters
Mastodon