找来找去,我只找到一个其他接近的问题,但没有有效的答案。
我想在24小时后自动将WooCommerce中的订单状态从 "完成 "改为 "取消"。
理想情况下,这也只适用于包含虚拟产品的订单。
我已经尝试了这里给出的答案,但不能让它工作。在特定时间过后自动改变WooCommerce订单状态?
前面的答案是否需要在cron job或类似的工作中定期运行?
将这段代码添加到主题函数.php中
你可以改变天数 ( if($int>1) ) : 在这个例子中:1天。
( wp_ ) 是表前缀。
add_action('init', 'wp_orders');
function wp_orders()
{
global $wpdb;
$my_query = "SELECT * FROM wp_wc_order_stats where STATUS='wc-processing'";
$val123 = $wpdb->get_row($my_query, OBJECT);
$result2 = $wpdb->get_results($my_query);
foreach ($result2 as $results2) {
$date1 = $results2->date_created_gmt;
$order_id = $results2->order_id;
$date2=date("Y-m-d h:i:s");
$dteStart = new DateTime($date1);
$dteEnd = new DateTime($date2);
$dteDiff = $dteStart->diff($dteEnd);
$Diff = $dteDiff->format("%d");
$int = (int)$Diff;
if($int>1)
{
$order = new WC_Order($order_id);
if (!empty($order)) {
$order->update_status( 'completed' );
}
}
}
}