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 в соответствии с вашими конкретными требованиями.