【问题标题】:Create a WooCommerce order custom field with a value based on specific property使用基于特定属性的值创建 WooCommerce 订单自定义字段
【发布时间】:2021-05-06 10:12:47
【问题描述】:
我想请你帮忙创建一个自定义字段。
如何在没有插件的情况下根据created_via 属性为 WooCommerce 订单创建自定义字段“frontier_agent”,如下所示:
- 如果
created_via 值为“amazon”,则应将 frontier_agent 值设置为 7000。
- 如果
created_via 值为“checkout”,则应将frontier_agent 值设置为7500。
感谢任何帮助。
【问题讨论】:
标签:
php
wordpress
woocommerce
custom-fields
orders
【解决方案1】:
以下将基于create_via 订单属性创建frontier_agent 自定义字段:
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 文件中。经过测试并且可以工作。