Disattivare la notifica email dopo il cambio della password

23 ott 2015, 11:42:43
Visualizzazioni: 60.8K
Voti: 24

Voglio disattivare la notifica email quando un utente o un amministratore modifica la password di un utente.

Dopo alcune ricerche su Google, ho scoperto che devo creare un plugin e sovrascrivere la funzione wp_password_change_notification che si trova in pluggable.php.

Questo è il plugin e la funzione:

<?php
/*
Plugin Name: Stop email change password
Description: Qualsiasi descrizione
*/

if ( !function_exists( 'wp_password_change_notification' ) ) {
    function wp_password_change_notification() {}
}
?>

Ho caricato il file nella mia cartella dei plugin e l'ho attivato nel pannello di amministrazione!

Questo deve essere fatto con un plugin perché il file pluggable.php viene caricato prima del file functions.php.

Comunque non sembra funzionare nel mio caso.

L'utente continua a ricevere l'email.

Ho disattivato tutti i plugin e ho eseguito il plugin su un'installazione pulita quindi non ci sono interferenze

Anche il WP_DEBUG non mostra alcun errore!

Qualcuno può dirmi cosa cambiare o come risolvere in un altro modo (eccetto modifiche al core :-))

M.

1
Commenti

Anch'io ho avuto difficoltà e ho provato a creare/usare un plugin personalizzato, impostando i filtri di WordPress su false ma niente ha funzionato... Proprio oggi mi sono imbattuto nel plugin Manage Notification E-mails e funziona :)

Leander Leander
26 feb 2016 11:40:14
Tutte le risposte alla domanda 9
0
37

Per disabilitare le notifiche email agli utenti, aggiungi questo codice in un plugin o nel tema:

add_filter( 'send_password_change_email', '__return_false' );

Per tua informazione, la funzione wp_password_change_notification() gestisce la notifica via email all'amministratore quando un utente cambia la propria password

23 ott 2015 22:58:04
3
33

Per disabilitare la notifica via email all'Amministratore quando un utente reimposta la propria password, crea un Plugin (o un Must Use Plugin) utilizzando il seguente snippet di codice:

/**
 * Disabilita la notifica all'Amministratore per il cambio password utente
 *
 * @see pluggable.php
 */
if ( ! function_exists( 'wp_password_change_notification' ) ) {
    function wp_password_change_notification( $user ) {
        return;
    }
}

Questo impedirà l'invio della seguente email all'indirizzo email dell'Amministratore specificato in Impostazioni > Generali:

Da: WordPress <wordpress@example.com>
A: admin@example.com
Oggetto: [WordPress] Password Modificata

Password modificata per l'utente: username

La soppressione di questa notifica email deve essere gestita con un plugin perché pluggable.php viene caricato prima del file functions.php del tema.


Se invece desideri disabilitare la notifica via email all'Utente che conferma che un utente ha modificato con successo la propria password, utilizza il seguente filtro inserito nel functions.php:

/**
 * Disabilita la notifica all'Utente per la conferma di cambio password
 */
add_filter( 'send_password_change_email', '__return_false' );

Questo impedirà l'invio della seguente email:

Da: WordPress <wordpress@example.com>
A: username@example.com
Oggetto: [WordPress] Password Modificata

Ciao username,

Questa notifica conferma che la tua password è stata modificata su WordPress.

Se non hai modificato la password, contatta l'Amministratore del Sito all'indirizzo admin@example.com

Questa email è stata inviata a username@example.com

Cordiali saluti,
Tutto il team di WordPress
http://example.com/

5 mag 2017 21:03:59
Commenti

C'è un grosso errore in questa risposta. Il nome del filtro è "send_password_change_email" non "send_email_change_email".

https://codex.wordpress.org/Plugin_API/Filter_Reference/send_password_change_email

Tristan CHARBONNIER Tristan CHARBONNIER
6 apr 2018 11:29:40

Notato. Per riferimento, i due filtri sono correlati e possono essere utilizzati per disabilitare la notifica all'utente quando viene modificata l'email o la password dall'utente. L'uso dell'uno o dell'altro dipende da quale notifica si desidera sopprimere - la modifica dell'email o la modifica della password. Per un quadro chiaro, fare riferimento alla funzione WordPress wp_update_user() in wp-includes/user.php: https://core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/user.php#L1795

rjb rjb
6 apr 2018 19:15:04

ciao, perché una funzione wp_password_change_notification verrebbe eseguita quando esiste già una funzione con lo stesso nome?

danny danny
13 mar 2023 22:05:02
4

Se stai utilizzando Woocommerce:

A partire dalla versione WC 3.8.0 (Novembre 2019), è ora disponibile un hook filter dedicato per questa funzionalità:

add_filter('woocommerce_disable_password_change_notification', '__return_true');

Dovrebbe disabilitare le notifiche di cambio password.

22 apr 2020 14:00:50
Commenti

quell'hook è solo quando si utilizza woocommerce (woocommerce 3.8, non wordpress 3.8)

Rafa Rafa
13 mag 2020 12:22:59

@Rafa Oops, sì, ho fatto così tanto sviluppo WC + WP che le linee si sono confuse per me. Ho modificato la mia risposta grazie.

Mikepote Mikepote
14 mag 2020 15:25:42

Attenzione che questo disattiverà l'email di reset password per l'utente finale (vedi /woocommerce/includes/shortcodes/class-wc-shortcode-my-account.php) e quindi non è correlato alle notifiche admin...

Leander Leander
4 ott 2022 21:35:53

Questo hook 'woocommerce_disable_password_change_notification' disattiva effettivamente l'email di notifica "Password modificata" per l'amministratore che viene attivata nei siti WooCommerce. Noterai in /woocommerce/includes/shortcodes/class-wc-shortcode-my-account.php che impedisce l'esecuzione della funzione wp_password_change_notification(), la quale "Notifica all'amministratore del blog la modifica della password da parte di un utente" WordPress Developer Reference

Abundant Designs Abundant Designs
10 mar 2023 20:12:07
1

Questo funziona per me, basta svuotare l'indirizzo email.

// Disabilita l'email di notifica per il cambio password.
add_filter('wp_password_change_notification_email', function ($wp_password_change_notification_email) {
    $wp_password_change_notification_email['to'] = '';
    return $wp_password_change_notification_email;
});
10 feb 2022 17:35:23
Commenti

È il modo migliore per farlo ora. Quando la domanda è stata posta per la prima volta, wp_password_change_notification_email non esisteva (è stato aggiunto in WP 4.9).

butlerblog butlerblog
29 mar 2022 19:21:41
6

Copia il seguente codice e salvalo come disable_email.php. Poi posiziona il file nella directory "wp-content/plugins/". E attivalo dal Pannello di Amministrazione.

<?php
/*
Plugin Name: Stop email change password
Description: Whatever
*/

if (!function_exists('wp_password_change_notification')) {
    function wp_password_change_notification($user) {
        return;
    }
}
?>
23 ott 2015 11:51:06
Commenti

??? In cosa è diverso da quello che ho fatto?

Interactive Interactive
23 ott 2015 11:57:28

Hai creato un plugin e inserito il tuo codice lì dentro?

Sabbir Hasan Sabbir Hasan
23 ott 2015 12:05:48

Sì, è quello che pensavo di aver descritto. Aggiornerò la domanda se non era chiaro!

Interactive Interactive
23 ott 2015 12:09:20

Prova ora. Ho aggiornato la risposta. Dovrebbe funzionare adesso!

Sabbir Hasan Sabbir Hasan
23 ott 2015 12:13:18

Ah, ho appena trovato e provato questo ma non ha funzionato!

Interactive Interactive
23 ott 2015 12:15:59

@Interactive Devi prima attivare il plugin. Ha funzionato per me.

Max S. Max S.
9 dic 2019 01:46:25
Mostra i restanti 1 commenti
0

WordPress invia la notifica per impostazione predefinita quando l'utente viene aggiornato con wp_update_user().

Tentare di sovrascrivere questo comportamento utilizzando filtri, modificando pluggable.php o sovrascrivendo con una funzione vuota, non funziona.

Invece, utilizza wp_set_password( $password, $user_id ) quando non vuoi che venga attivata l'e-mail di notifica per utenti/amministratori durante un reset della password.

23 feb 2016 13:55:11
2

modifica: questo serve a disabilitare solo le notifiche per gli amministratori quando un altro utente del sito cambia la propria password. Potrei aver frainteso la domanda! Scusate =]

La funzione wp_password_change_notification è responsabile di questa funzionalità in WordPress che invia email agli amministratori per gli aggiornamenti delle password degli utenti (come hanno menzionato altri post).

Quello che non ho visto menzionato qui è che all'interno di ./wp-includes/default-filters.php ~riga 499 (al momento della scrittura) potete vedere questa funzione aggiunta all'azione after_password_reset.

Una soluzione rapida è quindi semplicemente rimuoverla dalla lista delle azioni:

remove_action( 'after_password_reset', 'wp_password_change_notification' );

Potete assolutamente riscrivere/sovrascrivere wp_password_change_notification, essendo una delle funzioni di pluggable.php, ma se state cercando di rimuovere questa funzionalità piuttosto che aggiornarla, questa potrebbe essere un'opzione migliore.

1 mar 2023 19:15:08
Commenti

Aggiungerò che l'azione after_password_reset viene eseguita dopo la procedura di reset della password (schermata di login). L'invio di una notifica di modifica password come risultato della modifica del profilo può essere controllato dal filtro send_password_change_email.

nmr nmr
4 mar 2023 13:16:41

Ops! Il tuo commento mi ha fatto capire che potrei aver frainteso la domanda. Stavo cercando un modo per disabilitare la notifica all'amministratore quando qualsiasi utente del sito modifica la propria password. Modificherò per annotarlo velocemente - grazie @nmr

Rohjay Rohjay
7 mar 2023 21:03:26
1

Le altre risposte sono sbagliate perché disabilitano l'invio dell'email quando viene modificata l'email, non quando viene cambiata la password.

Aggiungere il codice qui sotto nel tuo file functions.php sotto il tema attivo (o alternativamente in un plugin) dovrebbe funzionare. Ha funzionato per me nella versione 4.6.1

/**
 * Disabilita l'invio dell'email di modifica password
 */
add_filter( 'send_password_change_email', '__return_false' );

Vedi documentazione ufficiale

14 giu 2017 07:43:59
Commenti

Non tutte le altre risposte possono essere sbagliate e nuove risposte vengono pubblicate continuamente. Dovresti essere più specifico nella tua risposta quando ti riferisci ad "altre" risposte.

Sparky Sparky
10 dic 2019 22:01:10
0

Utilizza la funzione wp_set_password() invece di wp_update_user() per aggiornare la password in quanto non attiverà una notifica email.

17 dic 2017 10:01:52