每周一自动在 WooCommerce 中将订单状态从处理中更新为已完成
Update order status from processing to completed in WooCommerce automatically on every Monday
我需要在 WooCommerce 中的特定时间段后更新所有 'processing' 订单的订单状态。
我的目标是通过 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
我需要在 WooCommerce 中的特定时间段后更新所有 'processing' 订单的订单状态。 我的目标是通过 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