使用woocommerce_checkout_update_order_meta保存自定义的结帐字段
已发表: 2025-07-01自定义WooCommerce结帐是一种普遍需求,尤其是当您想从客户那里收集额外的详细信息时。无论是特别的注释还是诸如交货指令之类的自定义输入,WooCommerce都可以将这些字段保存到订单中。在本指南中,您将学习如何使用woocommerce_checkout_update_order_meta
操作添加两个新字段并存储其值。另外,我们将展示诸如灵活结帐字段的插件Pro如何使其变得更加容易。
让我们逐步行走如何在WooCommerce中存储自定义订单元。
WooCommerce中的结帐自定义是什么?如何处理订单数据?
WooCommerce结帐过程涉及多个关键步骤。当客户填写表格并点击“位置订单”时,WooCommerce会验证数据,存储帐单/运输信息以及触发开发人员可以用来存储额外数据的挂钩。
默认情况下,仅保存诸如名称,电子邮件和地址之类的标准字段。
但是,您可以使用woocommerce_checkout_fields
过滤器扩展此功能,以将自定义字段添加到表单中。
然后,使用woocommerce_checkout_update_order_meta
操作,您可以将其值保存为订单元。
当您想包括礼物消息,交货偏好或自定义说明之类的内容时,这一点特别有用。
您甚至可以在管理面板,电子邮件或感谢页面中显示此数据。
如何在WooCommerce中使用代码添加和保存自定义字段?
假设您想收集两种其他信息:
- 自定义文本输入(“自定义文本”)
- Textarea消息(“自定义消息”)
这是做的方法。
woocommerce_checkout_fields
和woocommerce_checkout_update_order_meta
操作中,应添加到主题的functions.php中以显示新的结帐字段并将数据保存为订单元。1。将自定义字段添加到结帐表格
add_filter('woocommerce_checkout_fields', 'add_custom_checkout_fields'); function add_custom_checkout_fields($fields) { $fields['billing']['custom_text_field'] = array( 'type' => 'text', 'label' => __('Custom Text', 'woocommerce'), 'required' => false, 'priority' => 110, ); $fields['billing']['custom_message_field'] = array( 'type' => 'textarea', 'label' => __('Custom Message', 'woocommerce'), 'required' => false, 'priority' => 120, ); return $fields; }

2。将字段值保存到订单meta
add_action('woocommerce_checkout_update_order_meta', 'save_custom_checkout_fields'); function save_custom_checkout_fields($order_id) { if (!empty($_POST['custom_text_field'])) { update_post_meta($order_id, '_custom_text_field', sanitize_text_field($_POST['custom_text_field'])); } if (!empty($_POST['custom_message_field'])) { update_post_meta($order_id, '_custom_message_field', sanitize_textarea_field($_POST['custom_message_field'])); } }
现在,两个字段将在订单的自定义字段下出现在管理面板中。

woocommerce_wp_text_input
和woocommerce_wp_textarea_input
在DIV内的顺序详细信息中使用class class =“ edit_address”中的顺序详细信息中函数,因此在编辑之前隐藏了它。这种方法效果很好,但是需要一些编码知识。
在验证,字段类型或有条件显示数据时,它也有限制。
这就是灵活结帐字段的出现。
为什么使用灵活的结帐字段专业而不是编写自定义代码?
在编码自己的字段并使用woocommerce_checkout_update_order_meta
Action保存它们时,它可以使您完全控制,但它并不总是最有效或最安全的解决方案,尤其是对于非开发人员而言。
这就是灵活的结帐字段插件变得更容易,更快的选择。


这是5个杰出的功能,使灵活的结帐字段值得使用:

- 拖放字段管理器- 无需编写PHP功能。只需直接在WordPress管理中拖动和重新排序字段即可。
- 字段类型品种- 添加文本,文本方面,选择,无线电,复选框,日期选择器,时间等。
- 显示规则- 根据选定的运输/付款方式或购物车条件显示或隐藏字段。
灵活结帐字段中的自定义表单字段的条件Pro WooCommerce - 预定义的验证- 易于设置所需字段,并使用无自定义功能的内置验证选项。
- 定价- 每个结帐字段的额外价格。
灵活结帐字段中的每个表单示例的其他定价pro wooCommerce
您可以获得完整的接口,而不是用woocommerce_checkout_update_order_meta
手动注册字段并保存元数据。
另外,所有保存的现场值都在订单摘要和电子邮件中巧妙地出现。
如果您正在寻找一种长期,可扩展的解决方案来处理自定义结帐字段并保存数据以订购元,则此插件可节省数小时的编码和维护。
灵活的结帐字段Pro WooCommerce £ 59
从WooCommerce结帐表中编辑,添加新的或隐藏不必要的字段。将定价添加到字段中,并使用条件逻辑。这一切都是关于转换和更好的用户体验。新的:现在,您可以在一个或多个条件组(和)下设置多个条件(或)。
主动装置:90,000+ | WordPress等级:
woocommerce_checkout_update_order_meta vs插件:您应该选择哪种方法?
如果您要构建自定义集成或有非常具体的要求,则woocommerce_checkout_update_order_meta
与woocommerce_checkout_fields
结合使用是一种强大而可靠的方法。
但是,如果您想要一种自定义结帐并完全避免代码的更简单的方法,则必须使用灵活的结帐字段插件。
它可以加快您的工作流程,并通过编辑WooCommerce结帐来消除猜测。
概括
- 使用
woocommerce_checkout_fields
添加新的结帐字段。 - 使用
woocommerce_checkout_update_order_meta
来保存这些字段以订购元。 - 自定义代码具有灵活性,但需要持续的支持和测试。
- 灵活的结帐字段Pro可让您在视觉上使用高级选项管理字段。
- 如果您只需要基本字段编辑,也有免费版本。