wordpress - x 天后自动取消失败的 Woocommerce 订单
问题描述
我想在 X 天后自动取消所有 woocommerce 订单。我想使用 cron 作业进行设置。这样它就可以在按照我的 cron 计划设置的 X 天后自动取消。
这是我的代码。但它不起作用。任何帮助表示赞赏。
add_action('woocommerce_order_status_changed','status_changed_cancelled');
function status_changed_cancelled( $order_id, $checkout = null ) {
global $woocommerce;
$order = new WC_Order( $order_id );
if($order->get_status() == 'wc-failed'){
//assign statu to that order
$order->status = 'wc-cancelled';
}
}
解决方案
更新:我能够成功取消失败的订单。取消失败订单的主要原因是恢复库存。
add_action( 'woocommerce_cancel_unpaid_submitted', 'cancel_failed_orders' );
function cancel_failed_orders() {
$days_delay = 1; // <=== SET the delay (number of days to wait before cancelation)
$one_day = 24 * 60 * 60;
$today = strtotime( date('Y-m-d') );
// Get failed orders (1 days old here)
$failed_orders = (array) wc_get_orders( array(
'limit' => -1,
'status' => 'wc-failed',
'date_created' => '<' . ( $today - ($days_delay * $one_day) ),
) );
if ( sizeof($failed_orders) > 0 ) {
$cancelled_text = __("The order was auto cancelled since it has been in failed state for 24 hours", "woocommerce");
// Loop through orders
foreach ( $failed_orders as $order ) {
$order->update_status( 'wc-cancelled', $cancelled_text );
}
}
}
推荐阅读
- javascript - JS - 如何将多个动态导入批处理为一个?
- excel - Excel VBA AppActivate 在 Windows 文件资源管理器中打开 Edge
- r - qgisprocess包的安装
- java - 使用 RequestBuilder 和 HttpUriRequest 发送授权的发布请求
- java - 导入枚举类时找不到符号错误
- webpack - terser-webpack-plugin 在另一台机器上生成不同的输出
- dictionary - 使用 Ansible 将嵌套字典展平为键/值对
- sql - 创建显示日期和日期之间的用户计数的视图
- html - 页脚的大小与其内容无关。(HTML、CSS)
- apache-spark - pyspark中的有效累积枢轴