使用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_fieldswoocommerce_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; }
将自定义字段添加到WooCommerce Checkout表单示例
将自定义字段添加到WooCommerce Checkout表单示例

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_inputwoocommerce_wp_textarea_input在DIV内的顺序详细信息中使用class class =“ edit_address”中的顺序详细信息中函数,因此在编辑之前隐藏了它。

这种方法效果很好,但是需要一些编码知识。

在验证,字段类型或有条件显示数据时,它也有限制。

这就是灵活结帐字段的出现。

为什么使用灵活的结帐字段专业而不是编写自定义代码?

在编码自己的字段并使用woocommerce_checkout_update_order_meta Action保存它们时,它可以使您完全控制,但它并不总是最有效或最安全的解决方案,尤其是对于非开发人员而言。

这就是灵活的结帐字段插件变得更容易,更快的选择。

将自定义字段添加到WooCommerce Checkout表单,并具有灵活的结帐字段Pro示例
将自定义字段添加到WooCommerce Checkout表单,并具有灵活的结帐字段Pro示例
WordPress.org上有一个免费版本:灵活的结帐字段 - 免费,非常适合基本字段管理。但是,Pro版本为您提供了更大的灵活性。
在特定页面上显示字段 - 灵活结帐字段中的插件设置WooCommerce
在特定页面上显示字段 - 灵活结帐字段中的插件设置WooCommerce

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

  • 拖放字段管理器- 无需编写PHP功能。只需直接在WordPress管理中拖动和重新排序字段即可。
  • 字段类型品种- 添加文本,文本方面,选择,无线电,复选框,日期选择器,时间等。
  • 显示规则- 根据选定的运输/付款方式或购物车条件显示或隐藏字段。
    灵活结帐字段中的自定义表单字段的条件Pro WooCommerce
    灵活结帐字段中的自定义表单字段的条件Pro WooCommerce
  • 预定义的验证- 易于设置所需字段,并使用无自定义功能的内置验证选项。
  • 定价- 每个结帐字段的额外价格。
    灵活结帐字段中的每个表单示例的其他定价pro wooCommerce
    灵活结帐字段中的每个表单示例的其他定价pro wooCommerce

您可以获得完整的接口,而不是用woocommerce_checkout_update_order_meta手动注册字段并保存元数据。

另外,所有保存的现场值都在订单摘要和电子邮件中巧妙地出现。

如果您正在寻找一种长期,可扩展的解决方案来处理自定义结帐字段并保存数据以订购元,则此插件可节省数小时的编码和维护。

灵活的结帐字段Pro WooCommerce £ 59

从WooCommerce结帐表中编辑,添加新的或隐藏不必要的字段。将定价添加到字段中,并使用条件逻辑。这一切都是关于转换和更好的用户体验。新的:现在,您可以在一个或多个条件组(和)下设置多个条件(或)。

主动装置:90,000+ | WordPress等级:

添加到购物车查看详细信息
90,000多个主动装置
最后更新:2025-06-23
与WooCommerce合作9.6-9.9

woocommerce_checkout_update_order_meta vs插件:您应该选择哪种方法?

如果您要构建自定义集成或有非常具体的要求,则woocommerce_checkout_update_order_metawoocommerce_checkout_fields结合使用是一种强大而可靠的方法。

但是,如果您想要一种自定义结帐并完全避免代码的更简单的方法,则必须使用灵活的结帐字段插件。

它可以加快您的工作流程,并通过编辑WooCommerce结帐来消除猜测。

概括

  • 使用woocommerce_checkout_fields添加新的结帐字段。
  • 使用woocommerce_checkout_update_order_meta来保存这些字段以订购元。
  • 自定义代码具有灵活性,但需要持续的支持和测试。
  • 灵活的结帐字段Pro可让您在视觉上使用高级选项管理字段。
  • 如果您只需要基本字段编辑,也有免费版本。