J'ai créé un site dans le serveur de transfert que je souhaite modifier l'adresse électronique de l'administrateur pour ce site de transfert. Parce que je veux tester quelque chose sur le site intermédiaire à ce moment-là, aucun email n'est envoyé au client (email d'administrateur d'origine), de sorte que je souhaite changer d'email d'administrateur. L'adresse e-mail de l'administrateur ne changera pas tant que je n'aurai pas cliqué sur le lien dans l'e-mail de confirmation. Adresse de confirmation dans wordpress comment je fais ça? Pourrais-tu m'aider s'il te plaît? S'il y a un code pour cela?
Une page de paramètres "secrets" vous permet de modifier tous les paramètres du tableau des options.
Accédez-y en remplaçant l'URL de /options-general.php par /options.php
Celui que vous essayez de remplacer est en réalité le courrier électronique dans les paramètres Wordpress, pas le courrier électronique de l'utilisateur wp. Celui-ci peut être changé directement dans la base de données dans la table wp_options
où option_name
est admin_email
Ou avec la requête de mise à jour donnée:
UPDATE `wp_options` SET `option_value` = '[email protected]' WHERE `option_name` = 'admin_email';
Remarque: faites un dump et essayez-le d'abord en local. Ne testez pas en production.
Changer avec 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";
Vous devez entrer dans le serveur mysql
et lancez la requête suivante
UPDATE `wp_options` SET `option_value` = '[email protected]' WHERE `option_id` = 6;
Plus facile à utiliser phpMyAdmin
wp_options> admin_email
Exécuter cette requête, cela modifiera l'identifiant du courrier électronique sans aucune confirmation
UPDATE `wp_users` SET `user_email` = 'newemail' WHERE `user_email` = 'old_email';
J'ai eu le même problème alors j'ai écrit un plugin pour restaurer la fonctionnalité de lien de confirmation. Vous pouvez le télécharger sur le repo .org:
Modifier les paramètres de messagerie de l'administrateur sans les e-mails sortants
Voici le code:
<?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;
}
}