本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
聽起來是特例,也沒錯,就是特例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 的沒試過!
版本演進要顧慮到上下兼容這件事不只是開發者要注意,使用者也要很小心!