我需要将WooCommerce设置为自动清理旧的已完成订单.搬到垃圾桶是可以的,但我真的更愿意把它们删除.以下是我现在使用的方法,但似乎不起作用:
function expire_after_x_days(){
global $wpdb;
// Get current time
$today = date("mdy");
// set time to expire
$time_to_expire = "-180 days";
$expiration_date = date("mdy", strtotime( $today . $time_to_expire));
// Get orders with processing status
$result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'shop_order' AND post_status = 'wc-completed'");
if( !empty($result)) foreach ($result as $order){
// Get order's time
$order_time = get_the_time('mdy', $order->ID );
// Compare order's time with current time -10 days
if ( $order_time < $expiration_date ){
// Update order status
wp_delete_post($order_id,true);
}
}
}
// Use the best HOOK for your case
add_action( 'admin_footer', 'expire_after_x_days' );
// OR simply call the function if you are pasting this in your functions.php
我做错了什么?
function expire_after_x_days(){
global $wpdb;
// Get current time
$today = date("mdy");
// set time to expire
$time_to_expire = "-180 days";
$expiration_date = date("mdy", strtotime( $today . $time_to_expire));
// Get orders with processing status
$result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'shop_order' AND post_status = 'wc-completed'");
if( !empty($result)) foreach ($result as $order){
// Get order's time
$order_time = get_the_time('mdy', $order->ID );
// Compare order's time with current time -10 days
if ( $order_time < $expiration_date ){
// Update order status
wp_delete_post($order_id,true);
}
}
}
// Use the best HOOK for your case
add_action( 'admin_footer', 'expire_after_x_days' );
// OR simply call the function if you are pasting this in your functions.php
我做错了什么?