WooCommerce重新排序结账字段

当她不爱你的时候,就是你从他生活中消失的时候,在第一时间离开她,骄傲地过属于自己的生活。同时,你也希望她能幸福快乐,希望她找到属于她的未来。我们就轻轻拥抱一下回忆里的温暖。

我有一个有关WooCommerce结账字段的好代码教程,但是我在有关如何更改结账字段顺序的评论中收到很多问题。因此,我决定为此编写一个单独的好代码教程。

如果您没有阅读有关WooCommerce结账字段的完整好代码教程,我强烈建议您先阅读它,然后再回到这里。

组内排序字段

首先要记住的是,字段被分成几组,实际上有4个组:

  • billing- 账单地址
  • shipping- 送货地址
  • account- 账号登录
  • order- 附加信息

这些组中的每一个都包含字段,我想您知道哪个字段。而且,您可以使用特殊priority参数轻松地对它们重新排序。

示例:我想使邮箱字段成为第一个显示的字段,我可以使用以下几行代码来做到这一点:

add_filter( 'woocommerce_checkout_fields', 'misha_email_first' );
 
function misha_email_first( $checkout_fields ) {
	$checkout_fields['billing']['billing_email']['priority'] = 4;
	return $checkout_fields;
}

结果:

为什么我要设置priority4?让我解释一下,每个默认字段都有其自己的优先级,所有这些都在下表中列出。因此,根据该表,要首先设置电子邮件字段,我必须使用小于10的值。

如果您更改了字段顺序,并且结果看起来很奇怪(例如,如果您尝试在半宽字段之间放置全宽字段,例如,姓和名之间的电子邮件),则可以使用此技巧轻松修复它。

woocommerce_default_address_fields

还有一个挂钩-woocommerce_default_address_fields允许同时更改订单的计费和运送字段。因此,我们的示例代码如下:

add_filter( 'woocommerce_default_address_fields', 'misha_email_first' );
 
function misha_email_first( $address_fields ) {
	// 如你所见,不需要指定字段所属的组
	$address_fields['email']['priority'] = 4;
	return $address_fields;
}

移动字段到其他字段组

对我来说,这种排序方式似乎有些棘手,并且在100%的情况下将不起作用,例如,您不能将“开票国家/地区”字段移动到“订单备注”下面。好吧,实际上,您可以,但是(一个很大的“but”),例如,当您尝试将一个国家更改为美国时,州不会出现在旁边的字段中。

这是示例,我们将账单电子邮件字段移到另一个组:

add_filter( 'woocommerce_checkout_fields', 'misha_billing_email_another_group' );
 
function misha_billing_email_another_group( $checkout_fields ){
 
	// 1. 我们分配一个字段数组到新的分组
	$checkout_fields['order']['billing_email'] = $checkout_fields['billing']['billing_email'];
 
	// 2. 从之前的位置移除字段
	unset( $checkout_fields['billing']['billing_email'] );
 
	return $checkout_fields;
 
}

效果不错:

关于结账界面的修改,可以看下:

  • WooCommerce自定义修改结账字段
  • WooCommerce修改账单和收货地址字段
  • 在WooCommerce结账页面上更改“下订单”按钮的文本
  • WooCommerce自定义结账字段验证

如果您对 WooCommerce 的使用还不太了解,或者想系统学习 WooCommerce 开发,可以学习好代码教程《WooCommerce 开发指南视频课程(使用详解/主题开发/支付宝网关开发)》。

声明:原文出自 https://rudrastyh.com/woocommerce/reorder-checkout-fields.html ,由 WordPress大学 翻译整理,转载请保留本声明!

本文WooCommerce重新排序结账字段到此结束。帮助朋友不是责任,更不是义务,而是一种发自内心的快乐。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
WooCommerce 检查用户是否有未完成支付的订单

WooCommerce自定义感谢页面的内容

WordPress和WooCommerce内置的Cookies大全

如何禁用WooCommerce 4.0+新增的仪表盘和分析页面

WooCommerce添加新字段到订单详情元数据框