it-swarm.com.ru

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

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

 enter image description here

18
developerme

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

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

58
valerio

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

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

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

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

Правка с БД

//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";

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

3
Abdulla Nilam

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

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

UPDATE `wp_options` SET `option_value` = '[email protected]' WHERE `option_id` = 6;
1
sese smith

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

wp_options> admin_email

1
Eric Caudle

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

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

У меня была та же проблема, поэтому я написал плагин для отката функции подтверждения ссылки. Вы можете скачать его в репозитории .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's 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;
    }

}
0
John Dee