我需要在特定时间段后在WooCommerce中更新所有“处理中”订单的订单状态。我的目标是通过cron工作来做到这一点。所以我将这个钩子添加到WP Control中,并按周计划:woocommerce_complete_processing_order_weekly
这是我在functions.php中添加的内容:
add_action( 'woocommerce_complete_processing_order_weekly', 'custom_woocommerce_complete_order', 10, 0 );
function custom_woocommerce_complete_order ( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
$order->update_status( 'completed' );
}
你能帮我这个忙吗?
add_action( 'admin_init', 'update_order_status_on_monday' );
function update_order_status_on_monday() {
if ( date( 'D', strtotime( 'now' ) ) === 'Mon' && !get_transient( '_updated_order_status_on_monday' ) ) {
$processing_orders = wc_get_orders( $args = array(
'numberposts' => -1,
'post_status' => 'wc-processing',
) );
if ( !empty( $processing_orders ) ) {
foreach ( $processing_orders as $order )
$order->update_status( 'completed' );
}
set_transient( '_updated_order_status_on_monday', true );
} elseif ( date( 'D', strtotime( 'now' ) ) !== 'Mon' ) {
delete_transient( '_updated_order_status_on_monday' );
}
}
将此代码添加到您的活动主题functions.php中
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句