如何簡化結帳免費商品店面主題
已發表: 2020-11-03在大多數 WooCommerce 商店中,客戶在結賬後購買產品並彙款。 此外,他們還將選擇送貨方式或輸入優惠券代碼以獲得折扣。
但是,如果您在商店中提供免費商品,您可能不需要在結帳時填寫所有字段。 這意味著您不會收取任何運費。 因此,您可能不需要賬單詳細信息,只需要姓名,可能還需要電子郵件。
店面簡化結帳免費項目
值得一提的是,WooCommerce 將有助於刪除免費結賬的付款方式選擇。 但是,帳單字段仍然存在並且需要下訂單:
如果您銷售免費的虛擬產品,例如免費會員,最好簡化結帳流程。
如果您遇到此問題,可以通過 WC()->cart->needs_payment() 檢查輕鬆檢查結帳是否免費。 如果不需要付款,我將說明如何使用它來採取一些措施來簡化免費的 WooCommerce 結帳。 我們需要有條件地刪除一些計費字段。
讓我引導您完成一些步驟,您可以採取哪些步驟來簡化免費結帳並將其組合成一個可用的片段。
簡化免費商品結賬的步驟
- 刪除優惠券表格
如果您想免費結帳,則不需要優惠券表格,因為沒有什麼可以打折的。 我會用! WC()->cart->needs_payment() 作為支票,它將假設結帳總額為 0 美元,因此不需要運費或訂單付款。 為了安全地移除優惠券輸入,我們需要使用以下代碼:
// 如果您不想要免費購物車的優惠券,請刪除優惠券表格 remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);
- 禁用訂單備註
您可能想收集免費訂單的訂單說明。 但是,我們正在嘗試做的主要事情是為您的 WooCommerce 商店中的客戶簡化結帳流程。 我將刪除結帳的整個“附加信息”部分。 這可以使用 woocommerce_enable_order_notes_field 過濾器來完成,因為我們可以將其設置為 false,因此沒有訂單備註。
// 刪除“附加信息”訂單註釋 add_filter('woocommerce_enable_order_notes_field', '__return_false');
- 取消設置不必要的字段
由於它是免費訂單,我們不需要從信用卡中收取費用。 結帳中的大多數計費字段都不需要。 這意味著我必須取消設置我不需要的購買字段。 您可以在 WooCommerce 文檔中找到結帳字段的列表。
// 在免費結賬時取消設置我們不想要的字段 功能 unset_unwanted_checkout_fields( $fields ) { // 要刪除的計費字段鍵列表 $billing_keys = 數組( 'billing_company', '計費電話', '帳單地址_1', '帳單地址_2', '計費城市', 'billing_postcode', '計費國家', '帳單狀態', ); // 取消設置每個不需要的字段 foreach( $billing_keys 作為 $key ) { 未設置($fields['billing'][$key]); } 返回$字段; } add_filter('woocommerce_checkout_fields', 'unset_unwanted_checkout_fields');
但是,您可以選擇要從結帳表單中刪除的字段。
- 添加代碼
以下是在 Storefront 主題的 functions.php 文件中添加代碼的步驟:
- 登錄您的 WordPress 站點並以管理員用戶身份訪問儀表板。
- 從儀表板菜單中,單擊外觀菜單 > 主題編輯器菜單。 打開主題編輯器頁面後,查找主題函數文件以簡化免費項目結帳。
- 將以下代碼添加到函數中。 php
/** * 如果結帳不需要付款,則刪除優惠券表格、訂單備註和幾個帳單字段。 * * 需要 PHP 5.3+ * */ 函數 sv_free_checkout_fields() { // 首先,如果 WC 不活躍,則保釋,因為我們被掛在了一個通用的 WP 鉤子中 如果(!function_exists('WC')){ 返回; } // 如果購物車需要付款,則保釋,我們不想做任何事情 if ( WC()->cart && WC()->cart->needs_payment() ) { 返回; } // 現在只有在我們結帳時才繼續 // is_checkout() 從 WC 3.2 開始在 ajax 上下文中被破壞,仔細檢查 is_ajax // 我會檢查 WOOCOMMERCE_CHECKOUT 但測試表明它的設置不可靠 if ( function_exists( 'is_checkout' ) && ( is_checkout() || is_ajax() ) ) { // 刪除優惠券表格,因為您為什麼想要免費購物車的優惠券? remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10); // 刪除“附加信息”訂單註釋 add_filter('woocommerce_enable_order_notes_field', '__return_false'); // 在免費結賬時取消設置我們不想要的字段 add_filter('woocommerce_checkout_fields',函數($fields){ // 添加或刪除不需要的計費字段 // 字段:http://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-2 $billing_keys = 數組( 'billing_company', '計費電話', '帳單地址_1', '帳單地址_2', '計費城市', 'billing_postcode', '計費國家', '帳單狀態', ); // 取消設置每個不需要的字段 foreach( $billing_keys 作為 $key ) { 未設置($fields['billing'][$key]); } 返回$字段; }); } } add_action('wp', 'sv_free_checkout_fields');
- 當您添加整個代碼時,WooCommerce 結帳將被簡化:
結論
總之,我已經引導您完成了簡化結帳流程的步驟。 我已經詳細解釋了這些步驟,以便您可以理解代碼。 但是,您需要注意,本文包含您可以在活動主題 function.php 文件中進行的代碼更改或片段。 如果您不熟悉此任務,請聘請 WordPress 開發人員。
類似文章
- 如何更改店面主題標語 WooCommerce
- 如何在 WooCommerce 結帳表單中添加額外字段
- 如何添加免責聲明店面 WooCommerce
- 如何設置 WooCommerce 店面主題產品頁面全寬
- 如何修復未捕獲的類型錯誤:wp.template 不是函數
- 如何在不使用插件的情況下在 WordPress 中創建數字分頁
- 如何移動主菜單店面 WooCommerce
- 如何刪除購物車頁面 WooCommerce 店面主題
- 如何在 WooCommerce 中自動批准訂單
- 如何更改店面 WooCommerce 主題中的鏈接顏色
- 如何添加 WooCommerce 店面英雄形象
- 如何在刷新 WordPress 頁面時重定向 » 檢測頁面刷新 PHP
- 在 WooCommerce 中更改繼續結帳文本
- WooCommerce 註銷 PHP 代碼段以創建註銷按鈕
- 如何調整頁眉的 WooCommerce 店面高度
- 如何添加產品圖片 WooCommerce 結帳頁面
- 如何設置 WooCommerce 店面頁腳小部件
- 如何計算添加到購物車 WooCommerce 購物車計數代碼的項目