Как изменить адрес электронной почты главного администратора в WordPress без уведомлений и процессов подтверждения

Я создал один сайт на промежуточном сервере. Я хочу изменить адрес электронной почты администратора для этого промежуточного сайта. Поскольку в то время я хочу что-то протестировать на промежуточном сайте и хочу, чтобы клиенту не отправлялось никакого электронного письма (исходное электронное письмо администратора), я хочу изменить основное электронное письмо администратора.

Но когда я меняю адрес электронной почты администратора, я получаю ссылку для подтверждения на мой новый адрес электронной почты администратора.

Адрес электронной почты администратора не изменится, пока я не нажму на ссылку в электронном письме с подтверждением.

После того, как я нажму ссылку подтверждения, первоначальный администратор получит уведомление об изменении адреса электронной почты администратора.

Я хочу отключить уведомление об изменении адреса электронной почты администратора, а также новую ссылку подтверждения адреса электронной почты администратора в WordPress.

Как мне это сделать? Не могли бы вы мне помочь? Есть ли код для этого?

enter image description here

Ответ 1

Существует "секретная" страница настроек, которая позволяет вам изменить все настройки в таблице параметров.

Получите доступ к нему, изменив URL с /options-general.php на /options.php

Ответ 2

Тот, который вы пытаетесь заменить, на самом деле является адресом электронной почты в настройках Wordpress, а не электронной почтой пользователя wp. Это можно изменить непосредственно в базе данных в таблице wp_options, где option_name есть admin_email

Или с заданным запросом на обновление:

UPDATE `wp_options` SET `option_value` = '[email protected]' WHERE `option_name` = 'admin_email';

Ответ 3

Примечание. Получите дамп и попробуйте сначала локально. Не тестируйте на производстве.

Изменить с помощью DB

//email
UPDATE `wp_users` SET `user_email` = "new_email_address" WHERE `wp_users`.`user_login` = "admin";

//password
UPDATE `wp_users` SET `user_pass` = MD5('new_password_here') WHERE `wp_users`.`user_login` = "admin";

Проверьте это тоже

Ответ 4

Проще использовать phpMyAdmin

wp_options> admin_email

Ответ 5

Вы должны войти в MySQL сервер

и выполните следующий запрос

UPDATE 'wp_options' SET 'option_value' = '[email protected]' WHERE 'option_id' = 6;

Ответ 6

Есть несколько способов изменить адрес электронной почты администратора без использования стороннего плагина.

Кроме того, кроме admin_email, есть еще одно значение, которое необходимо изменить. Независимо от того, что вы измените значение admin_email в БД, уведомление о подтверждении останется, если вы тоже не измените new_admin_email.

Обновление через базу данных:

В случае обновления опции через БД, есть две опции, которые необходимо изменение: admin_email и new_admin_email.

UPDATE wp_options SET option_value = '[email protected]' WHERE 
option_name LIKE 'admin_email' 
OR 
option_name LIKE 'new_admin_email';

примечание: хотя по умолчанию каждая база данных WordPress имеет префикс wp_ для своих таблиц, их можно изменить, поэтому проверьте в wp-config.php значение $table_prefix.

Обновление через options.php:

Другой способ, без использования какого-либо плагина, заключается в доступе к секретной странице /wp-admin/options.php. Однако может быть слишком много опций, и из-за того, что для каждого сервера по-разному задан лимит переменных $_POST изменить его таким образом совершенно невозможно.

Узнайте больше о max_input_vars https://www.php.net/manual/en/info.configuration.php

Обновление с помощью functions.php в активной теме:

Вы можете установить один временной код (и удалить его после) в functions.php вашей активной темы, чтобы обновить эти параметры:

update_option( 'admin_email', '[email protected]' );

а также

update_option( 'new_admin_email', '[email protected]' ); 

Поместите их в некоторый admin_init вызов действия admin_init.

Обновление через wp-cli:

Другой способ обновить электронную почту администратора - через wp-cli (если у вас есть доступ к терминалу ssh):

wp option update admin_email '[email protected]'

а также

wp option update new_admin_email '[email protected]'

см. больше о командах опции wp:

https://developer.wordpress.org/cli/commands/option/update/

Ответ 7

Запустить этот запрос. Это изменит идентификатор электронной почты без подтверждения.

UPDATE `wp_users` SET `user_email` = 'newemail' WHERE `user_email` = 'old_email';

Ответ 8

У меня была такая же проблема, поэтому я написал плагин для отката ссылки на ссылку подтверждения. Вы можете загрузить его на регю .org:

Изменить настройку электронной почты администратора без исходящей электронной почты

Вот код:

<?php
/*
 Plugin Name: Change Admin Email Setting Without Outbound Email
 Plugin URI: https://wp-bdd.com/change-admin-email/
 Description: Restores functionality removed since WordPress 4.9. Allows the changing of the admin email by admins in single site without outbound email or recipient email credentials.
 Version: 1.0
 Author: John Dee
 Author URI: https://wp-bdd.com/
*/

$ChangeAdminEmailPlugin = new ChangeAdminEmailPlugin;

class ChangeAdminEmailPlugin{

    public function __construct(){

        //This plugin doesn't do anything unless it WordPres version +4.9 and single site
        if($this->isWordPressMinimiumVersion("4.9.0") && (!( is_multisite()))){
            //pulls the default actions
            remove_action( 'add_option_new_admin_email', 'update_option_new_admin_email' );
            remove_action( 'update_option_new_admin_email', 'update_option_new_admin_email' );

            //When you actually complete the change, another email gets fired to the old address
            //this filter overides this:
            add_filter('send_site_admin_email_change_email', function(){return FALSE;}, 10, 3 );

            //hooks our own custom method to update the email
            add_action( 'add_option_new_admin_email', array($this, 'updateOptionAdminEmail'), 10, 2 );
            add_action( 'update_option_new_admin_email', array($this, 'updateOptionAdminEmail'), 10, 2 );

            //this fixes the text in English. Translators wanted for other languages.
            add_action('wp_after_admin_bar_render', array($this, 'modifyOptionsGeneralPHPForm'));
        }
    }

    public function updateOptionAdminEmail( $old_value, $value ) {
        update_option( 'admin_email', $value );
    }

    public function isWordPressMinimiumVersion($version){
        global $wp_version;
        if (version_compare($wp_version, $version, ">=")) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    //Changes the form on admin area options-general.php. Doesn't do anything unless on this page.
    public function modifyOptionsGeneralPHPForm(){
        $screen = get_current_screen();
        if($screen->base == "options-general"){
            add_filter( 'gettext', array($this, 'filterText'), 10, 3 );
        }
    }

    //Changes the English text of WP core. Inspired by https://wordpress.stackexchange.com/questions/188332/override-default-wordpress-core-translation
    public function filterText( $translated, $original, $domain ) {
        if ( $translated == "This address is used for admin purposes. If you change this we will send you an email at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>"){
            $translated = __("This address is used for admin purposes.");
        }
        return $translated;
    }

}

Ответ 9

Вы можете отключить подтверждение по электронной почте, просто добавив следующий код в вашу тему function.php

    remove_action( 'add_option_new_admin_email', 'update_option_new_admin_email' );
remove_action( 'update_option_new_admin_email', 'update_option_new_admin_email' );

/**
 * Disable the confirmation notices when an administrator
 * changes their email address.
 *
 * @see http://codex.wordpress.com/Function_Reference/update_option_new_admin_email
 */
function wpdocs_update_option_new_admin_email( $old_value, $value ) {

    update_option( 'admin_email', $value );
}
add_action( 'add_option_new_admin_email', 'wpdocs_update_option_new_admin_email', 10, 2 );
add_action( 'update_option_new_admin_email', 'wpdocs_update_option_new_admin_email', 10, 2 );

Ответ 10

Адрес электронной почты администратора сети изменяется из таблицы wp_sitemeta. Используйте следующий запрос в phpmyadmin или любом клиенте mysql, чтобы обновить электронную почту, если вы не можете изменить настройки сетевого администратора.

UPDATE 'wp_sitemeta' SET 'meta_value' = '[email protected]' WHERE 'meta_value' = '[email protected]';

Примечание: пожалуйста, используйте префикс таблицы, который используется в db, если в вашем случае это не wp.

look at the image of wp_sitemeata table if you want to know the entries to be changed.