ปิดใช้งานการแจ้งเตือนทางอีเมลหลังจากเปลี่ยนรหัสผ่าน


14

ฉันต้องการปิดใช้งานการแจ้งเตือนอีเมลหากผู้ใช้หรือผู้ดูแลระบบเปลี่ยนรหัสผ่านของผู้ใช้

หลังจากที่บาง Googleling ฉันมาถึงพบว่าฉันต้องสร้างปลั๊กอินและเขียนทับฟังก์ชั่นที่พบในwp_password_change_notificationpluggable.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ไฟล์

อย่างไรก็ตามมันดูเหมือนจะไม่ได้ผลสำหรับฉัน .......

ผู้ใช้ยังคงได้รับอีเมล

ฉัน diabled ปลั๊กอินทั้งหมดและเรียกใช้ปลั๊กอินในการติดตั้งใหม่ทั้งหมดดังนั้นจึงไม่มีสัญญาณรบกวน

WP_DEBUGไม่แสดงข้อผิดพลาดใด ๆ เช่นกัน !!!

ใครช่วยบอกฉันว่าจะเปลี่ยนหรือวิธีการแก้ไขวิธีอื่น ๆ (ยกเว้นการแก้ไขหลัก :-))

เอ็ม


1
ฉันยังพยายามและพยายามสร้าง / ใช้ปลั๊กอินที่กำหนดเอง, การตั้งค่า WordPress กรองเท็จ แต่ไม่มีอะไรทำงาน ... เพียงแค่วันนี้ฉัน stumbled เมื่อจัดการการแจ้งเตือนอีเมลปลั๊กอินและการทำงาน :)
Leander

คำตอบ:


20

หากต้องการปิดใช้งานการแจ้งเตือนทางอีเมลของผู้ใช้ให้เพิ่มสิ่งนี้ในปลั๊กอินหรือธีม:

add_filter( 'send_password_change_email', '__return_false' );

FYI wp_password_change_notification()ควบคุมการแจ้งเตือนทางอีเมลของผู้ดูแลระบบเมื่อผู้ใช้เปลี่ยนรหัสผ่าน


11

หากต้องการปิดใช้งานการแจ้งเตือนทางอีเมลของผู้ดูแลระบบเมื่อผู้ใช้รีเซ็ตรหัสผ่านของตนเองให้สร้างปลั๊กอิน (หรือต้องใช้ปลั๊กอิน ) โดยใช้ข้อมูลโค้ดต่อไปนี้:

/**
 * 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 <wordpress@example.com>
ถึง: admin@example.com
หัวเรื่อง: [WordPress] เปลี่ยนรหัสผ่าน

เปลี่ยนรหัสผ่านสำหรับผู้ใช้: ชื่อผู้ใช้

การระงับการแจ้งเตือนอีเมลนี้จะต้องจัดการกับปลั๊กอินเพราะpluggable.phpโหลดไว้ก่อนหน้าfunctions.phpไฟล์ของธีม


หากคุณต้องการปิดใช้งานการแจ้งเตือนอีเมลผู้ใช้แทนผู้ใช้ที่ได้เปลี่ยนรหัสผ่านของตนเองสำเร็จให้ใช้ตัวกรองต่อไปนี้ในfunctions.php:

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

การดำเนินการนี้จะระงับไม่ให้ส่งอีเมลต่อไปนี้:

จาก: WordPress <wordpress@example.com>
ถึง: username@example.com
หัวเรื่อง: [WordPress] เปลี่ยนรหัสผ่าน

สวัสดีชื่อผู้ใช้

ประกาศนี้ยืนยันว่ารหัสผ่านของคุณถูกเปลี่ยนใน WordPress

หากคุณไม่ได้เปลี่ยนรหัสผ่านโปรดติดต่อผู้ดูแลเว็บไซต์ที่ admin@example.com

อีเมลนี้ถูกส่งไปที่ username@example.com

ขอแสดงความนับถือ,
ทั้งหมดที่ WordPress
http://example.com/


2
คำตอบนี้มีความผิดพลาดครั้งใหญ่ ชื่อตัวกรองคือ "send_password_change_email" ไม่ใช่ "send_email_change_email" codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER

ข้อสังเกต. สำหรับการอ้างอิงทั้งสองตัวกรองมีความเกี่ยวข้องและสามารถใช้เพื่อปิดการแจ้งเตือนผู้ใช้เมื่อผู้ใช้เปลี่ยนอีเมลหรือรหัสผ่าน กรณีการใช้งานนั้นขึ้นอยู่กับการแจ้งเตือนที่คุณต้องการระงับ - การเปลี่ยนอีเมลหรือการเปลี่ยนรหัสผ่าน สำหรับภาพที่ชัดเจนให้อ้างอิงถึงฟังก์ชั่น WordPress wp_update_user()ในwp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
rjb

2

WordPress wp_update_user()ส่งการแจ้งเตือนโดยค่าเริ่มต้นเมื่อผู้ใช้มีการปรับปรุงด้วย

การพยายามเขียนทับสิ่งนี้โดยใช้ตัวกรองการดัดแปลงpluggable.phpหรือเขียนทับด้วยฟังก์ชั่นที่ว่างเปล่าไม่ทำงาน

ใช้แทนwp_set_password( $password, $user_id )เมื่อคุณไม่ต้องการให้อีเมลแจ้งเตือนถูกเรียกใช้สำหรับผู้ใช้ / ผู้ดูแลระบบในการรีเซ็ตรหัสผ่าน


1

คัดลอกรหัสต่อไปนี้และบันทึกเป็น 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;
    }
}
?>

??? สิ่งนี้แตกต่างจากสิ่งที่ฉันทำอย่างไร
Interactive

คุณสร้างปลั๊กอินและวางรหัสของคุณไว้บนนั้นหรือไม่?
Sabbir Hasan

ใช่นั่นคือสิ่งที่ฉันคิดว่าฉันอธิบาย แต่ฉันจะอัปเดตคำถามหากยังไม่ชัดเจน!
อินเตอร์แอ

ลองตอนนี้. ฉันอัพเดตคำตอบแล้ว มันควรจะทำงานตอนนี้!
Sabbir Hasan

ฮ่าฉันเพิ่งพบและลองสิ่งนี้ แต่ไม่ได้ผล!
อินเตอร์แอ

1

คำตอบอื่น ๆ ผิดเพราะสิ่งเหล่านั้นปิดการใช้งานการส่งอีเมลเมื่อมีการเปลี่ยนแปลงอีเมลไม่ใช่เมื่อมีการเปลี่ยนรหัสผ่าน

การเพิ่มโค้ดด้านล่างลงในไฟล์ functions.php ของคุณภายใต้ธีมที่ใช้งานอยู่ (หรือในปลั๊กอิน) ควรจะใช้งานได้ ทำงานสำหรับฉันสำหรับรุ่น 4.6.1

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

ดูเอกสารอย่างเป็นทางการ


ไม่ใช่คำตอบอื่นทั้งหมดที่อาจผิดและคำตอบใหม่จะถูกโพสต์ตลอดเวลา คุณควรเจาะจงมากขึ้นในคำตอบของคุณเมื่ออ้างถึงคำตอบ "อื่น ๆ "
Sparky

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.