Я создал функцию PHP, которая вычисляет, сколько лет заказу WordPress / WooCommerce. Если заказ старше 90 дней, он должен быть отменен. Функция раньше работала отлично. Однако с нового 2020 года он перестал работать. Я бы предположил, что это потому, что эта функция запуталась из-за того, что -90 дней, начиная с сегодняшнего дня, это год 2019. Как я могу заставить вычисления работать с прошлыми годами / 2019?
Я пытался играть с разными форматами даты из кодекса WordPress вместо mdy. Тем не менее, это, кажется, не имеет никакого значения.
function expire_after_x_days(){
global $wpdb;
// Get current time
$today = date("m/d/y");
// set time to expire
$time_to_expire = "-90 days";
$expiration_date = date("m/d/y", 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-processing'");
if( !empty($result)) foreach ($result as $order){
// Get order's time
$order_time = get_the_time('m/d/y', $order->ID );
// Compare order's time with current time
if ( $order_time < $expiration_date ){
// Update order status
$orders = array();
$orders['ID'] = $order->ID;
$orders['post_status'] = 'wc-cancelled';
wp_update_post( $orders );
}
}
}
add_action( 'admin_footer', 'expire_after_x_days' );