Вам нужно будет:
Получить все заказы, которые имеют статус «отправлены» и были созданы до последних 10 дней.
Вы можете использовать функцию wc_get_orders (https://github.com/woocommerce/woocommerce/wiki/wc_get_orders-and-WC_Order_Query) для запроса заказов.
$orders = wc_get_orders( array(
'status' => 'shipped',
'date_created' => '<' . ( time() - 10 * DAY_IN_SECONDS ),
));
Вы можете использовать date_paid вместо date_created - зависит от ваших потребностей.
Перебрать результаты запроса и установить для них все значение «выполнено».
foreach ($orders as $order){
$order->update_status( 'completed' );
}
Планируйте запуск этой функции ежедневно с помощью функции wp_schedule_event
wp_schedule_event (time (), 'daily', 'function_name');
Соберите вместе, вы должны иметь это:
function setCompletedAfter10Days(){
$orders = wc_get_orders( array(
'status' => 'shipped',
'date_created' => '<' . ( time() - 10 * DAY_IN_SECONDS ),
) );
foreach ($orders as $order){
$order->update_status( 'completed' );
}
}
wp_schedule_event( time(), 'daily', 'setCompletedAfter10Days' );