Изучение различных методов обработки действия WooCommerce «Заказ выполнен».

WooCommerce – популярный плагин WordPress, который поддерживает множество веб-сайтов электронной коммерции. Он предоставляет универсальный набор хуков и действий, которые разработчики могут использовать для расширения его функциональности. Одним из таких действий является «заказ завершен», который срабатывает, когда заказ успешно обработан. В этой статье мы рассмотрим различные методы обработки действия «заказ выполнен», а также приведем примеры кода.

Метод 1: использование хука действия «woocommerce_order_status_completed»

Самый простой способ обработки действия «заказ завершен» — использовать перехват действия woocommerce_order_status_completed. Этот хук срабатывает, когда заказ переходит в статус «выполнен». Вы можете добавить собственный код в функцию, привязанную к этому действию. Вот пример:

function handle_order_complete($order_id) {
    // Your custom code here
}
add_action('woocommerce_order_status_completed', 'handle_order_complete', 10, 1);

Метод 2: использование хука действия «woocommerce_order_status_changed»

В качестве альтернативы вы можете использовать хук действия «woocommerce_order_status_changed» для обработки действия «заказ выполнен». Этот хук срабатывает всякий раз, когда изменяется статус заказа, позволяя вам проверить, является ли новый статус «завершенным». Вот пример:

function handle_order_status_change($order_id, $old_status, $new_status) {
    if ($new_status === 'completed') {
        // Your custom code here
    }
}
add_action('woocommerce_order_status_changed', 'handle_order_status_change', 10, 3);

Метод 3. Мониторинг статуса заказа с помощью хука действия «woocommerce_order_details_after_order_table».

Другой подход — использовать хук действия «woocommerce_order_details_after_order_table», который срабатывает после отображения таблицы сведений о заказе на странице подтверждения заказа. Здесь вы можете добавить свой собственный код для обработки действия «заказ выполнен». Вот пример:

function handle_order_details($order) {
    if ($order->get_status() === 'completed') {
        // Your custom code here
    }
}
add_action('woocommerce_order_details_after_order_table', 'handle_order_details', 10, 1);

Метод 4. Создание пользовательской функции для проверки выполнения заказа

Если вы предпочитаете более индивидуальный подход, вы можете создать специальную функцию для проверки выполнения заказа. Этот метод предполагает запрос статуса заказа и сравнение его со статусом «выполнено». Вот пример:

function is_order_complete($order_id) {
    $order = wc_get_order($order_id);
    if ($order && $order->get_status() === 'completed') {
        return true;
    }
    return false;
}

Обработка действия «заказ выполнен» в WooCommerce предоставляет разработчикам различные методы выполнения пользовательского кода при успешной обработке заказа. Независимо от того, решите ли вы использовать перехватчики действий или пользовательские функции, у вас есть возможность расширить функциональность WooCommerce в соответствии с вашими конкретными требованиями.