Şifre değişikliğinden sonra e-posta bildirimini devre dışı bırak


14

Bir kullanıcı veya yönetici kullanıcının parolasını değiştirirse e-posta bildirimini devre dışı bırakmak istiyorum.

Bazı Google çalışanlarından sonra bir eklenti oluşturmam ve bulunan wp_password_change_notificationişlevin üzerine yazmam gerektiğini buldum pluggable.php.

Bu eklenti ve işlevdir:

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

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

Dosyayı eklenti klasörüne yükledim ve yönetici panelimde etkinleştirdim!

pluggable.phpDosya, dosyadan önce yüklendiğinden bunun bir eklenti ile yapılması gerekir functions.php.

Neyse benim için çalışmıyor gibi görünüyor .......

Kullanıcı e-postayı almaya devam eder.

Tüm eklentileri kapattım ve temiz bir kurulumda eklentiyi çalıştırdım, böylece parazit yok

WP_DEBUGSıra hataları göstermiyor !!!

Biri bana neyi değiştireceğimi veya başka bir şekilde nasıl düzeltebileceğimi söyleyebilir mi (çekirdek değişiklikler hariç :-))

M.


1
Ayrıca WordPress filtrelerini yanlış olarak ayarlayarak / özel bir eklenti oluşturmaya / kullanmaya çalıştım, ancak hiçbir şey işe yaramadı ... Sadece bugün Bildirim E-postalarını Yönetme eklentisini tökezledim ve işe yarıyor :)
— Leander

Yanıtlar:


20

Kullanıcı e-posta bildirimini devre dışı bırakmak için bunu bir eklentiye veya temaya ekleyin:

add_filter( 'send_password_change_email', '__return_false' );

wp_password_change_notification()Kullanıcı şifresini değiştirdiğinde FYI yönetici e-posta bildirimini kontrol eder


11

Bir kullanıcı kendi şifresini sıfırladığında Yönetici e-posta bildirimini devre dışı bırakmak için aşağıdaki kod snippet'ini kullanarak bir Eklenti (veya Eklenti Kullanmalıdır ) oluşturun:

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

Bu, aşağıdaki e-postanın Ayarlar> Genel bölümünde Yönetici E-postasına gönderilmesini durduracaktır:

Kimden: WordPress <wordpress@example.com>
Alıcı: admin@example.com
Konu: [WordPress] Şifre Değişti

Kullanıcı için şifre değiştirildi: kullanıcı adı

pluggable.phpBir temanın functions.phpdosyasından daha önce yüklendiği için bu e-posta bildiriminin bastırılması bir eklenti ile ele alınmalıdır .


Bunun yerine , kullanıcının kendi şifresini başarıyla değiştirdiğine dair Kullanıcı e-posta bildirimini devre dışı bırakmak istiyorsanız , aşağıdaki filtreyi kullanın :functions.php

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

Bu, aşağıdaki e-postanın gönderilmesini engelleyecektir:

Kimden: WordPress <wordpress@example.com>
Alıcı: kullaniciadi@example.com
Konu: [WordPress] Şifre Değişti

Merhaba kullanıcı adı,

Bu bildirim, şifrenizin WordPress'te değiştirildiğini onaylar.

Şifrenizi değiştirmediyseniz, lütfen admin@example.com adresinden Site Yöneticisi ile iletişime geçin.

Bu e-posta kullaniciadi@example.com adresine gönderildi

Saygılarımızla,
Hepsi WordPress'de
http://example.com/


2
Bu cevapta büyük bir hata var. Filtre adı "send_email_change_email" değil, "send_password_change_email" şeklindedir. codex.wordpress.org/Plugin_API/Filter_Reference/…
— Tristan CHARBONNIER

Kayıt edilmiş. Referans olarak, iki filtre ilişkilidir ve kullanıcı tarafından bir e-posta veya şifre değiştirildiğinde kullanıcı bildirimini devre dışı bırakmak için kullanılabilir . Ya kullanım durumu, hangi bildirimi bastırmak istediğinize bağlıdır - e-posta değişikliği veya şifre değişikliği. Net bir resim için şu adresteki WordPress işlevine wp_update_user()bakın wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
— rjb

2

WordPress, kullanıcı ile güncellendiğinde varsayılan olarak bildirimi gönderir wp_update_user().

Filtreleri kullanarak bunun pluggable.phpüzerine yazmak, boş bir işlevle değiştirmek veya üzerine yazmak denemek işe yaramıyor.

Bunun yerine wp_set_password( $password, $user_id ), şifre sıfırlama işleminde kullanıcılar / yöneticiler için bildirim e-postasının tetiklenmesini istemediğinizde kullanın .


1

Aşağıdaki kodu kopyalayın vectiv_email.php kaydedin. Sonra bu dosyayı "wp-content / plugins /" dizinine yerleştirin. Ve Yönetici Paneli'nden etkindir.

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

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

??? Bu benim yaptığımdan nasıl farklı?
— Etkileşimli

Bir eklenti yaptınız ve kodunuzu buna yerleştirdiniz mi?
— Sabbir Hasan

Evet anlattığım şey buydu. Ama net değilse soruyu güncelleyeceğim!
— Etkileşimli

şimdi dene. Cevabı güncelledim. Şimdi çalışmalı!
— Sabbir Hasan

Ha sadece buldum ve denedim ama işe yaramadı!
— Etkileşimli

1

Diğer cevaplar yanlıştır, çünkü e-posta değiştirildiğinde şifre değiştiğinde e-posta göndermeyi devre dışı bırakırlar.

Aşağıdaki kodu aktif temanızın altındaki (veya alternatif olarak bir eklentide) function.php dosyasına eklemek işe yarayacaktır. 4.6.1 sürümünde benim için çalıştı

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

Resmi belgelere bakın


Diğer tüm cevaplar yanlış olmayabilir ve her zaman yeni cevaplar gönderilir. "Diğer" yanıtlara başvururken cevabınızda daha spesifik olmalısınız.
— Sparky

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.