Ş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.