#wordpress #wordpress-plugin-creation #wsod #hook-wordpress
#wordpress #wordpress-создание плагина #wsod #hook-wordpress
Вопрос:
WordPress 5.2 интегрировал защиту WSoD, которая по умолчанию отправляет администратору уведомление по электронной почте, когда сайт обнаруживает какую-либо фатальную ошибку. Я создал для своего клиента сайт, на котором я хотел бы отслеживать такую ошибку на случай, если это произойдет, но я не хочу вставлять роль администратора на свой клиентский сайт только для этой цели. Есть ли какой-нибудь крючок, с помощью которого я также могу установить дополнительное электронное письмо технической поддержки, если такие события произойдут?
Ответ №1:
Вы ищете хуки режима восстановления. Первый способ, более простой, — это установка RECOVERY_MODE_EMAIL
константы внутри вашего wp-config.php .
define( 'RECOVERY_MODE_EMAIL', 'you@example.com' );
Также можно изменить адрес электронной почты в режиме восстановления с помощью recovery_mode_email
фильтра:
add_filter( 'recovery_mode_email', function( $email ) {
$email['to'] = 'you@example.com';
return $email;
} );
Таким образом, вы получите почту вместо своего клиента, клиент не испугается, и вы будете проинформированы о проблеме. Если вы хотите, чтобы это было отправлено на несколько адресов, верните электронные письма в виде массива:
add_filter( 'recovery_mode_email', function( $email ) {
$email['to'] = array('you1@example.com', 'you2@example.com');
return $email;
} );
Рекомендуется поместить реализацию вашего фильтра в отдельный плагин или mu-плагин, чтобы избежать фатальных ошибок в теме, которые могут привести к тому, что фильтр никогда не сработает.
Комментарии:
1. @GeorageP, спасибо за подробное объяснение. Интересно, будет ли фильтр ‘recovery_mode_email’ работать в mu-плагине?
2. Да, и это рекомендуемый способ его использования вместо say
functions.php
. Смотрите: core.trac.wordpress.org/ticket/479393. привет @GeorageP, интересно, знаете ли вы, как я могу протестировать почту для восстановления? Я попытался сделать синтаксическую ошибку в одном плагине, но письмо для восстановления не отправляется ни администратору, ни моему дополнительному письму. Я проверил, работает ли служба электронной почты моего хоста. d
4. нужно ли мне включать режим восстановления вручную?