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


聽起來是特例,也沒錯,就是特例XD 像是先前文章有提到的活動購票案例,按照 WooCommerce 購物流程結帳沒有多筆購票(訂單)細節可以填寫,而實作在商品中繼資料(meta)中又很複雜,但最麻煩還是錢的問題,多張票情況下有退款要怎拆?

面對這樣的案例,二話不說直接選擇一次訂單一張票,大家退一步就剛剛好了!

實作方式也不難,在加入購物車的同時,把購物車清空,只保留當前加入的那款商品。

add_filter( 'woocommerce_add_cart_item_data', 'mxp_wc_custom_add_to_cart' );
function mxp_wc_custom_add_to_cart( $cart_item_data ) {
        WC()->cart->empty_cart(true);
        WC()->session->set('cart', array());
        return $cart_item_data;
}

Gist: Link

將上述程式碼放置在子主題下的 functions.php 尾巴即可~

這份資料適用 WooCommerce 3.x 以上版本,2.x 的沒試過!

版本演進要顧慮到上下兼容這件事不只是開發者要注意,使用者也要很小心!


Share:

作者: Chun

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

發佈留言

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


文章
Filter
Apply Filters
Mastodon