使用基于特定属性的值创建 WooCommerce 订单自定义字段

问题描述

我想请您帮忙创建自定义字段

如何在没有插件的情况下根据 created_via 属性为 WooCommerce 订单创建自定义字段“frontier_agent”,如下所示:

  • 如果 created_via 值为“amazon”,则 frontier_agent 值应设置为 7000
  • 如果 created_via 值为“checkout”,则 frontier_agent 值应设置为 7500

感谢任何帮助。

解决方法

以下内容将根据 frontier_agent 订单属性创建 create_via 自定义字段:

add_action( 'woocommerce_order_status_changed','create_frontier_agent_order_custom_field',10,4 );
function create_frontier_agent_order_custom_field( $order_id,$old_status,$new_status,$order ) {
    if( ! $order->get_meta('frontier_agent') ) {
        if( $order->get_created_via() === 'checkout' ) {
            $value = '7500';
        } elseif( $order->get_created_via() === 'amazon' ) {
            $value = '7000';
        }
        
        if( isset($value) ) {
            $order->update_meta_data('frontier_agent',$value);
            $order->save();
        }
    }
}

代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。