Отладка 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, который мы включили ранее.