Авто изменение статуса заказа в Woocommerce - PullRequest
0 голосов
/ 01 июля 2019

Я ищу способ автоматического изменения статуса заказа с отправленного (пользовательский статус, который я использую) на Завершено, но через 10 дней.Это можно сделать?

1 Ответ

1 голос
/ 01 июля 2019

Вам нужно будет:

  1. Получить все заказы, которые имеют статус «отправлены» и были созданы до последних 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 - зависит от ваших потребностей.

  2. Перебрать результаты запроса и установить для них все значение «выполнено».

    foreach ($orders as $order){
        $order->update_status( 'completed' );
    }
    
  3. Планируйте запуск этой функции ежедневно с помощью функции 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' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...