web-dev-qa-db-ja.com

パスワード変更後のメール通知を無効にする

ユーザーまたは管理者がユーザーのパスワードを変更した場合、電子メール通知を無効にします。

Googlelingの後、プラグインを作成してwp_password_change_notificationにあるpluggable.php関数を上書きする必要があることがわかりました。

これはプラグインと機能です:

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

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

私は自分のプラグインフォルダにファイルをアップロードし、私の管理者パネルでそれをアクティブにしました!

pluggable.phpファイルはfunctions.phpファイルの前にロードされるため、これはプラグインで実行する必要があります。

とにかくそれは私のために動作しないようです.......

ユーザーはまだ電子メールを受け取ります。

私はすべてのプラグインをdiableし、クリーンインストールでプラグインを実行したので干渉はありません

WP_DEBUGにもエラーは表示されません。

誰が私に何を変更すべきか、または他の方法でそれを修正する方法を教えてもらえますか(コアの変更を除く:-))

M.

13
Interactive

ユーザーの電子メール通知を無効にするには、これをプラグインまたはテーマに追加します。

add_filter( 'send_password_change_email', '__return_false' );

参考: wp_password_change_notification() ユーザーがパスワードを変更したときの管理者へのEメール通知を制御します

16
user42826

ユーザーが自分のパスワード をリセットしたときに管理者メール通知を無効にするには、次のコードスニペットを使用してプラグインを作成します(または プラグインの使用 )。

/**
 * Disable Admin Notification of User Password Change
 *
 * @see pluggable.php
 */
if ( ! function_exists( 'wp_password_change_notification' ) ) {
    function wp_password_change_notification( $user ) {
        return;
    }
}

これにより、[設定]> [一般]で次のメールが管理者のメールに送信されなくなります。

差出人: WordPress <[email protected]>
宛先: [email protected]
件名: [WordPress]パスワードが変更されました

ユーザーのパスワードが変更されました:username

pluggable.phpはテーマのfunctions.phpファイルよりも前にロードされるため、このEメール通知を抑制するにはプラグインを使用する必要があります。


代わりにユーザーの電子メール通知を無効にして ユーザーが自分のパスワード を正常に変更した場合は、functions.phpに配置された次のフィルタを使用します。

/**
 * Disable User Notification of Password Change Confirmation
 */
add_filter( 'send_password_change_email', '__return_false' );

これにより、次の電子メールが送信されなくなります。

差出人: WordPress <[email protected]>
宛先: [email protected]
件名: [WordPress]パスワードが変更されました

こんにちは、ユーザー名

この通知はあなたのパスワードがWordPressで変更されたことを確認します。

パスワードを変更しなかった場合は、サイト管理者([email protected])に連絡してください。

このメールは[email protected]に送信されました。

よろしく、
WordPressのすべて
http://example.com/

7
rjb

ユーザーがwp_update_user()で更新されると、WordPressはデフォルトで通知を送信します。

フィルタを使ってこれを上書きしようとしても、pluggable.phpを修正しても、あるいは空の関数で上書きしようとしても、うまくいきません。

パスワードのリセット時にユーザー/管理者に対して通知Eメールをトリガーしたくない場合は、代わりにwp_set_password( $password, $user_id )を使用してください。

パスワードが変更されたときではなく、Eメールが変更されたときにEメールを送信できなくなるため、他の答えは間違っています。

あなたのアクティブなテーマの下で(あるいはプラグインで)あなたのfunctions.phpファイルに以下のコードを追加することはうまくいくはずです。私のためにバージョン4.6.1のために働きました

/**
 * Disable sending of the password change email
 */
add_filter( 'send_password_change_email', '__return_false' );

公式文書を見る

2
wynnset

次のコードをコピーしてdisable_email.phpとして保存してください。それからそのファイルを "wp-content/plugins /"ディレクトリに置きます。そして管理パネルからアクティブにします。

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

if (!function_exists('wp_password_change_notification')) {
    function wp_password_change_notification($user) {
        return;
    }
}
?>
0
Sabbir Hasan

パスワードを更新するには、wp_update_user()の代わりに wp_set_password() 関数を使用します。これは電子メール通知をトリガーしないためです。

0
Andrew Schultz