Intereting Posts
Переименование файлов при загрузке с использованием переменных Каков канонический способ ссылки на страницы? Сбор информации о пользователе при нажатии ссылки на скачивание Как вы передаете параметры в короткий код? Как создать класс контейнера в PHP С каких причин можно условно добавлять действия? Получить верхний номер позиции из меню WordPress неудачная попытка изменения доменов – повторная маршрутизация wordpress в старый домен Как использовать мета-запрос для большего, чем значение в массиве? Преобразование ASCII в Unicode, а затем сохранение данных в базу данных с помощью поля редактора WP post удалять только сообщение в запросе / для каждого утверждения (передняя часть) Показывать представленные значения в форме, когда проверка не выполняется Как показать пользовательский счет типа сообщения на странице администрирования пользователей 404 перенаправление на родину два редактора tinyMCE на одной странице

Отключить обновления основного ядра WP, но отправить уведомление по электронной почте

Есть ли способ отключить обновления основного ядра WP, но для отправки уведомлений по электронной почте это обновление WP доступно для установки? Я знаю, что уведомление по электронной почте о обновлении WP отправляется после того, как WP обновился и как отключить все (основные обновления и уведомления).

Я пытаюсь использовать код ниже:

function core_update_notification(){ global $wp_version; $core_update = wp_version_check(); if ($core_update != NULL || $core_update !=FALSE){ $to = "me@example.com"; $subject = "WP update is available!"; $message = "You have WP update ready to install"; $headers = 'From: My Website <myname@mywebsite.com>' . "\r\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action( 'init', 'core_update_notification' ); add_filter( 'auto_update_core', '__return_false' ); 

но почему-то эта идея работает не так, как я ожидал.

UPDATE # 1 Похоже, что wp_version_check () выполняет проверку версии, а затем устанавливает переходный процесс update_core, если есть новая версия. Он не возвращает ничего полезного, поэтому код выше не работает. Необходимо использовать get_site_transient('update_core') и обновленный код выглядит так:

 function core_update_notification(){ global $wp_version; $installed_version = $wp_version; $uc_transient = get_site_transient('update_core'); if ( empty($uc_transient->updates) ) return; $updates = $uc_transient->updates; $current_version = $updates[0]->current; if (version_compare($installed_version, $current_version, "<")) { $to = "me@example.com"; $subject = "WP update is available!"; $message = "You have WP update ready to install"; $headers = 'From: My Website <myname@mywebsite.com>' . "\r\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action( 'init', 'core_update_notification' ); add_filter( 'auto_update_core', '__return_false' ); 

но как-то не отправляется электронное письмо

Solutions Collecting From Web of "Отключить обновления основного ядра WP, но отправить уведомление по электронной почте"

Похоже, что после переключения кода для проверки get_site_transient('update_core') меня есть то, что мне нужно, просто действие должно выполняться с правильным приоритетом или крюком (мысли / предложения?). Рабочий код ниже:

 function core_update_notification(){ global $wp_version; $installed_version = $wp_version; $uc_transient = get_site_transient('update_core'); if ( empty($uc_transient->updates) ) return; $updates = $uc_transient->updates; $current_version = $updates[0]->current; if (version_compare($installed_version, $current_version, "<")) { $to = "me@example.com"; $subject = "WP update is available!"; $message = "You have WP update ready to install"; $headers = 'From: My Website <myname@mywebsite.com>' . "\r\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action( 'init', 'core_update_notification' ); add_filter( 'auto_update_core', '__return_false' ); 

Я думаю, что лучшим решением будет использовать ежедневный wp_schedule_event в этом случае, следуя шагам отсюда: https://codex.wordpress.org/Function_Reference/wp_schedule_event