【发布时间】:2021-06-04 09:26:21
【问题描述】:
目标是获取/查询/循环所有订单状态为“正在处理”的订单,如果它们没有延期交货的项目,则将高级自定义字段 'internal_status' 更新为值 '准备打包'
现在对于一种测试方法(为了保持简单并查看它是否有效),我只是尝试在订单传递到状态“已完成”时更新自定义字段(尚无“延期交货的条件” )
基于Auto completed status for all existing processing orders in WooCommerce 答案代码,这是我的代码尝试:
function auto_update_orders_internal_status(){
// Get all current "processing" customer orders
$processing_orders = wc_get_orders( $args = array(
'numberposts' => -1,
'post_status' => 'wc-processing',
) );
if(!empty($processing_orders))
foreach($processing_orders as $order)
add_action('acf/save_post', 'update_internal_status_ready_to_pack');
}
add_action( 'woocommerce_order_status_completed', 'auto_update_orders_internal_status' );
function update_internal_status_ready_to_pack ( $order_id ) {
$internalstatus = 'Ready to Pack';
update_field( 'internal_status', $internalstatus, $order_id );
}
我知道我在这里没有完全掌握的一件事是查询/获取“处理状态”的所有订单并更新其相应字段的方法。
【问题讨论】:
标签: php sql woocommerce advanced-custom-fields orders