在WooCommerce 3+中向订单添加自定义字段 [英] Add a custom field to an order in WooCommerce 3+

查看:116
本文介绍了在WooCommerce 3+中向订单添加自定义字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在WooCommerce中,我想添加一个新的自定义字段来订购详细信息.现在,我可以使用下面的代码来创建新的自定义字段"referenceNumber",并在其中添加"ordercreated".值:

In WooCommerce, I would like to add a new custom field to order details. I now that I can use use the code below to create a new custom field 'referenceNumber' and adds in it "ordercreated" value:

update_post_meta($order_id, 'referenceNumber', 'ordercreated']);

我想要的是在下订单后通过结帐来实现这一目标.

What I would like is to make that through checkout once an order is placed.

但是它不起作用,不会在订单详细信息页面上添加新的自定义字段,也不会添加"ordercreated"值,如您在此屏幕快照中所见:

But it doesn't work it doesn't add a new custom field to order details page and don't add the value 'ordercreated', as you can see in this screenshot:

所以问题是当在WooCommerce下订单时如何添加自定义字段?

So the question is how to add a custom field when an order is placed in WooCommerce?

推荐答案

要将自定义字段添加到订单中,可以使用:

To add a custom field to an order you can use:

  • WordPress update_post_meta()函数(来自订单ID):

$order_id = $order->get_id(); // If needed

update_post_meta($order_id, 'referenceNumber', 'ordercreated'); // add and save the custom field

  • WooCommerce WC_Data update_meta_data()方法(来自订单对象或订单ID):

    $order = wc_get_order( $order_id ); // If needed: Get the WC_Order object from the order Id
    
    update_meta_data('referenceNumber', 'ordercreated'); // Add the custom field
    
    $order->save(); // Save the data
    

  • 其中 referenceNumber 元密钥,而创建的订单元值.两者都可以.

    Where referenceNumber is the meta key and ordercreated is the meta value. Both works.

    现在要在订单中添加自定义字段客户下订单时,您可以使用:

    Now to add a custom field to an order when customer place an order, you can use:

    • woocommerce_checkout_create_order 操作挂钩(保存订单数据之前-用于在保存之前调整订单数据):

    add_action( 'woocommerce_checkout_create_order', 'add_custom_field_on_placed_order', 10, 2 );
    function add_custom_field_on_placed_order( $order, $data ){
        $order->update_meta_data( 'referenceNumber', 'ordercreated' );
    }
    

  • woocommerce_checkout_update_order_meta 操作挂钩(订单已存在-用于添加自定义元数据):

    add_action( 'woocommerce_checkout_create_order', 'add_custom_field_on_placed_order', 10, 2 );
    function add_custom_field_on_placed_order( $order_id, $data ){
        $order->update_meta_data( 'referenceNumber', 'ordercreated' );
    }
    

  • woocommerce_checkout_order_created 操作挂钩(订单已存在-触发操作或添加自定义元数据):

    add_action( 'woocommerce_checkout_order_created', 'add_custom_field_on_placed_order', 10, 2 );
    function add_custom_field_on_placed_order( $order_id, $data ){
        $order->update_meta_data( 'referenceNumber', 'ordercreated' ); // Add the custom field
        $order->save(); // Save data (as order exist yet)
    }
    

    或者:

    add_action( 'woocommerce_checkout_order_created', 'add_custom_field_on_placed_order' );
    function add_custom_field_on_placed_order( $order ){
        update_post_meta($order->get_id(), 'referenceNumber', 'ordercreated');
    }
    

  • 代码进入您的活动子主题(或活动主题)的functions.php文件中.经过测试,可以正常工作.

    Code goes in functions.php file of your active child theme (or active theme). Tested and works.

    这篇关于在WooCommerce 3+中向订单添加自定义字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆