Обложка к записи Отладка wp_mail в WordPress без плагина
Время для прочтения: 1 мин. 13 сек.

Отладка wp_mail в WordPress без плагина

Бывали ли у вас проблемы с отправкой почты с вашего WordPress сайта без видимых причин? Если да — то эта статья для вас.

Вся сложность отладки заключается в том, что wp_mail возвращает true или false в зависимости от результата функции, по которым невозможно понять, что же пошло не так.

Включение журналирования

Перед началом отладки необходимо включить запись всех ошибок в журнал WordPress. Для чего добавьте/измените значение специальных констант в файле конфигурации wp-config.php:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Теперь все ошибки, предупреждения и уведомления будут записываться в файл debug.log, расположенный в папке wp-content.

Более подробно о включении режима отладки и константах смотрите в статье «Дебаг в WordPress«.

Отладка wp-mail

В WordPress 4.4 появился замечательный хук wp_mail_failed, которым мы и воспользуемся. Для чего добавьте в файл functions.php вашей активной темы следующий сниппет:

function mihdan_debug_wp_mail( $wp_error ) {
    return error_log( print_r( $wp_error, true ) );
}
add_action( 'wp_mail_failed', 'mihdan_debug_wp_mail', 10, 1 );

Благодаря данному сниппету, вся информация об ошибках внутри wp_mail будет записана журнал ошибок WordPress, который мы включили ранее.

Пошерить
Запинить
Отправить
Вотсап

Смотрите также

Комментарии