如何简化结帐免费商品店面主题
已发表: 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 购物车计数代码的项目