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


其實這需求也不是第一次碰到人問,就是有人會想要把「購物車(Cart)」頁面給拔除,整合到結帳頁面來縮短結帳流程。

示意圖如下,就是先選擇運送方式後,再來輸入對應需要的欄位。一個頁面搞定購買商品預覽和結帳。

結帳頁面運送方式

WooCommerce 的做法就是把功能搬過來結帳頁面用,程式碼片段如下:

function action_woocommerce_before_checkout_form($wccm_autocreate_account) {
    wc_cart_totals_shipping_html();
    woocommerce_shipping_calculator('選取運送方式');

};
add_action('woocommerce_before_checkout_form', 'action_woocommerce_before_checkout_form', 10, 1);

function woocommerce_shipping_calculator_scripts() {
    if (is_checkout()) {
        if (wp_script_is('wc-cart', 'registered') && !wp_script_is('wc-cart', 'enqueued')) {
            wp_enqueue_script('wc-cart');
        }
    }
}
add_action('wp_enqueue_scripts', 'woocommerce_shipping_calculator_scripts');

但這只是很雛形的開始,實際上大概還要做的事是把 wc_cart_totals_shipping_html() 方法繼承與改寫,輸出新的樣板結構(cart-shipping.php),控制選取事件與後端程式互動。

如果還是需要先檢視購物車項目完全取代購物車頁面,像是調整商品數量等等的話,那又要把購物車項目檢視那塊也搬過來了。

這類型改結帳流程的活都是費時費工,不在正常建議選項XD


Share:

作者: Chun

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

發佈留言

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


文章
Filter
Apply Filters
Mastodon