Для владельцев интернет-магазинов на WooCommerce очень важно своевременно узнавать о возникающих проблемах на сайте — например, о сбоях в оформлении заказов, ошибках оплаты или проблемах с инвентаризацией. В этой статье мы рассмотрим, как создать автоматическую систему уведомлений, которая будет информировать администратора магазина о критических ошибках и важных событиях.
Почему важно настраивать автоматические уведомления в WooCommerce
В обычных условиях владельцы магазина узнают о проблемах либо от клиентов, либо при мониторинге сайта вручную. Это увеличивает время реакции и может привести к потере заказов и клиентов. Автоматическая система уведомлений позволяет:
- мгновенно получать информацию о сбоях;
- повысить качество поддержки клиентов;
- предотвратить потерю заказов;
- автоматизировать мониторинг состояния магазина.
Для реализации такой системы понадобятся базовые знания PHP и умение работать с хуками WooCommerce.
Использование хуков WooCommerce для отслеживания ошибок
WooCommerce предоставляет множество хуков, которые срабатывают при различных событиях: создание заказа, смена статуса, ошибки оплаты и прочее. Для уведомлений мы можем использовать хуки, связанные с ошибками платежей и статусами заказов.
Например, хук woocommerce_order_status_failed срабатывает, когда заказ переходит в статус "Неудачный".
Вот простой пример функции для отправки уведомлений по email при ошибке оплаты:
function wpbusiness_notify_order_failed($order_id) {
$order = wc_get_order($order_id);
$to = get_option('admin_email');
$subject = 'Ошибка оплаты в магазине';
$message = 'Заказ №' . $order_id . ' не был оплачен. Проверьте детали заказа: ' . $order->get_edit_order_url();
wp_mail($to, $subject, $message);
}
add_action('woocommerce_order_status_failed', 'wpbusiness_notify_order_failed');Этот код можно добавить в файл functions.php вашей темы или в собственный плагин.
Отправка уведомлений при ошибках оформления заказа
Иногда ошибки возникают уже на этапе оформления заказа. Для их отлова подойдет хук woocommerce_checkout_order_processed, который вызывается после создания заказа. Мы можем проверить статус и отправить уведомление, если есть проблемы.
function wpbusiness_notify_checkout_problems($order_id, $posted_data, $order) {
if ($order->has_status('pending')) {
$to = get_option('admin_email');
$subject = 'Внимание: заказ ожидает оплаты';
$message = 'Заказ №' . $order_id . ' создан, но оплата не подтверждена. Проверьте платежные системы.';
wp_mail($to, $subject, $message);
}
}
add_action('woocommerce_checkout_order_processed', 'wpbusiness_notify_checkout_problems', 10, 3);Так вы будете сразу информированы о заказах, которые не были оплачены, и сможете оперативно связаться с клиентом.
Использование плагинов для расширенного мониторинга WooCommerce
Если хочется более продвинутые возможности, можно использовать специализированные плагины:
- Clearfy Pro — включает функции оптимизации и мониторинга, в том числе уведомления о критических ошибках.
- Expert Review — помогает анализировать отзывы и жалобы, что косвенно повышает контроль качества.
Эти плагины можно настроить так, чтобы получать уведомления и отчеты по email или через Telegram/Slack.
Логирование ошибок и уведомления по email через wp_mail
Если вы хотите расширить функционал и логировать ошибки, можно создать файл журнала и при каждой ошибке добавлять туда запись, а также отправлять письмо с краткой информацией.
function wpbusiness_log_and_notify_error($error_message) {
$log_file = WP_CONTENT_DIR . '/woocommerce_error_log.txt';
$time = date('Y-m-d H:i:s');
$message = "[$time] ERROR: $error_message\n";
file_put_contents($log_file, $message, FILE_APPEND);
$to = get_option('admin_email');
$subject = 'Ошибка в WooCommerce';
wp_mail($to, $subject, $message);
}
// Пример вызова функции при ошибке
add_action('woocommerce_payment_failed', function($order_id) {
wpbusiness_log_and_notify_error('Ошибка оплаты для заказа №' . $order_id);
});Такой подход дает удобный способ не только получать уведомления, но и хранить историю ошибок для последующего анализа.
Автоматизация уведомлений с помощью WP-Cron
Иногда полезно настроить периодическую проверку состояния заказов и отправку сводных отчетов. Для этого можно использовать WP-Cron — встроенный планировщик задач WordPress.
Пример простой задачи, которая проверяет заказы со статусом "Ожидает оплаты" и отправляет список администратору:
function wpbusiness_check_pending_orders() {
$args = [
'status' => 'pending',
'limit' => -1,
];
$orders = wc_get_orders($args);
if (!empty($orders)) {
$message = 'Список заказов, ожидающих оплату:\n';
foreach ($orders as $order) {
$message .= 'Заказ №' . $order->get_id() . ', сумма: ' . $order->get_total() . '\n';
}
wp_mail(get_option('admin_email'), 'Отчет по неоплаченным заказам', $message);
}
}
if (!wp_next_scheduled('wpbusiness_daily_pending_check')) {
wp_schedule_event(time(), 'daily', 'wpbusiness_daily_pending_check');
}
add_action('wpbusiness_daily_pending_check', 'wpbusiness_check_pending_orders');Это позволяет регулярно контролировать состояние магазина без вашего вмешательства.
Выводы и рекомендации
Автоматические уведомления о проблемах WooCommerce — важный инструмент для поддержания стабильной работы интернет-магазина. Используйте хуки WooCommerce, функции WordPress для отправки почты, а также планировщик WP-Cron для создания надежной системы оповещений.
Для расширенных возможностей обратите внимание на плагины с поддержкой мониторинга и автоматизации, например, Clearfy Pro.
Подключайте код в виде плагина или в functions.php темы, тестируйте на тестовом окружении и постепенно внедряйте на рабочем сайте.