ব্যবহারকারীর নিবন্ধকরণ পাসওয়ার্ড ইমেল অক্ষম করুন


13

সুতরাং, ওয়ার্ডপ্রেস ৪.৩ এর একটি নতুন পাসওয়ার্ড সিস্টেম রয়েছে যা আমরা সবাই জানি। দুর্ভাগ্যক্রমে, এই নতুন সিস্টেমটি নতুন ব্যবহারকারীদের ইমেল না প্রেরণের ক্ষমতাটি শেষ করে দিয়েছে ।

আমার ক্লায়েন্ট এমন একটি সিস্টেম ব্যবহার করছিলেন যেখানে তিনি তার ক্লায়েন্টদের একটি কাস্টম ইমেল ম্যানুয়ালি তাদের ইমেলগুলি নিবন্ধভুক্ত করেন এবং তারপরে একটি কাস্টম বার্তার সাহায্যে লগইন তথ্য দিয়ে তাদের ইমেল প্রেরণ করেন। আমরা সচেতন যে এই নতুন সিস্টেমটি আরও সুরক্ষিত হওয়ার চেষ্টা করছে তবে এটি তার পরিমাণ নিয়ন্ত্রণের জন্য কাজ করছে না।

এই ইমেলগুলি বন্ধ করার সমাধানের জন্য আমার সন্ধানে আমি নীচের কোডটি পেয়েছি, তবে আমি মনে করি তারা যদি কেবল নিবন্ধিত ব্যবহারকারীদের জন্য কোনও পূর্ববর্তী নিবন্ধভুক্ত ব্যবহারকারীদের ইমেল পরিবর্তন করা হয় তবে এটি কেবলমাত্র বিজ্ঞপ্তি ইমেলগুলি বন্ধ করে দেয়:

add_filter( 'send_password_change_email', '__return_false');
add_filter( 'send_email_change_email', '__return_false');

নিবন্ধকরণের পরে প্রেরণ করা প্রাথমিক পাসওয়ার্ড ইমেলগুলি বন্ধ করার কোনও উপায় কি কেউ জানেন?

ধন্যবাদ.


2
আপনি কি এই চেষ্টা করেছেন? add_filter( 'user_registration_email', '__return_false');
অভীক 23'15

উত্তর:


9

এই ইমেলটি phpmailer_initহুক ব্যবহার করে প্রেরণের আগে আপনি তা আটকাতে পারবেন ।

ডিফল্টরূপে, কোনও ইমেল প্রেরণের আগে এই হুকটি জ্বলে ওঠে। নীচের ফাংশনে, পিএইচপি মেলারের$phpmailer একটি উদাহরণ হবে এবং আপনি এর পদ্ধতিগুলি ডিফল্ট প্রাপককে সরাতে এবং ইমেল প্রেরণের আগে তা হেরফের করতে পারেন।

add_action('phpmailer_init', 'wse199274_intercept_registration_email');
function wse199274_intercept_registration_email($phpmailer){
    $admin_email = get_option( 'admin_email' );

    # Intercept username and password email by checking subject line
    if( strpos($phpmailer->Subject, 'Your username and password info') ){
        # clear the recipient list
        $phpmailer->ClearAllRecipients();
        # optionally, send the email to the WordPress admin email
        $phpmailer->AddAddress($admin_email);
    }else{
        #not intercepted
    }
}

এটি ত্রুটিহীনভাবে কাজ করে, সম্পূর্ণরূপে আমার সমস্যা সমাধান করেছে এবং অন্যান্য ব্যবহারের জন্যও নিখুঁত। একটি দুর্দান্ত উত্তরের জন্য ধন্যবাদ!
প্যাটিড

3

আসলে এটি নির্ভর করে আপনি কীভাবে নতুন ব্যবহারকারী তৈরি করবেন। আপনি যদি এটি প্রশাসন - ব্যবহারকারীদের থেকে করেন তবে নতুন যুক্ত করুন আপনি ঠিক বলেছেন। 4.3 দুর্ভাগ্যক্রমে আপনি বিজ্ঞপ্তি ইমেল প্রেরণ অক্ষম করতে পারবেন না। তবে আপনি যদি সত্যিই ইমেল ছাড়াই কোনও নতুন ব্যবহারকারী তৈরি করতে চান তবে একটি উপায় আছে।

আপনি একটি ছোট প্লাগইন তৈরি করতে পারেন যেখানে আপনি নিজের দ্বারা wp_insert_userফাংশনের মাধ্যমে একটি নতুন অ্যাকাউন্ট তৈরি করতে চান , যা কোনও ইমেল ডিফল্টরূপে প্রেরণ করে না।

এই ফাংশনটিকে এভাবে বলা যেতে পারে।

wp_insert_user( $userdata );

কোথায় userdataপরামিতি একটি অ্যারের যেখানে আপনি সব প্রয়োজনীয় তথ্য প্রেরণ করতে পারেন হয়।

$userdata = array(
    'user_login'  =>  'login',
    'user_pass'   =>  'password',
);

$user_id = wp_insert_user( $userdata ) ;

//On success
if ( ! is_wp_error( $user_id ) ) {
    echo "User created : ". $user_id;
}

আরও তথ্যের জন্য এখানে কোডেক্স চেক করুন


সুতরাং এই ফাংশনটি ডাকা হয় যখনই কোনও নতুন ব্যবহারকারী তৈরি হয় আমি ধরে নিচ্ছি?
লিসা সেরিলি

3

wp_new_user_notificationতাই আপনি এটি আপনার নিজের সংজ্ঞা ওভাররাইড করতে পারবেন ফাংশন, প্লাগেবল হয়। আপনার সম্পূর্ণ ফাংশনটি wp-includes/pluggable.phpআপনার প্লাগইন (বা functions.php) থেকে অনুলিপি করতে এবং ইমেলটি প্রেরণকারী লাইনটি সরাতে সক্ষম হওয়া উচিত ।


1
থিমের ফাংশন.এফপি-তে আপনি wp_new_user_notifications ওভাররাইড করতে পারবেন না, কারণ প্লাগেবল ফাংশন থিমের আগে লোড করা হয়েছে। এটি অবশ্যই প্লাগইন বা মু-প্লাগইনে ওভাররাইড করা উচিত। আরও পড়ুন: ওয়ার্ডপ্রেস.স্ট্যাকেক্সচেঞ্জ / এ
৫৫596666

1

আপনার থিমটিতে এটি সমাধান করার জন্য নতুন ফাইল তৈরি করে নতুন মু-প্লাগইন তৈরি করুন wp_new_user_notifications.php(নামটি আপনার উপর নির্ভর করে) এবং এটি wp-content/mu-pluginsফোল্ডারে রেখে দিন। যদি এর মতো কোনও ফোল্ডার না থাকে তবে একটি তৈরি করুন। মনে রাখবেন পিএইচপি ফাইলটি সরাসরি ফোল্ডারে রেখে দেওয়া হবে, কোনও সাবফোল্ডারে নয়।

সাইমন প্রস্তাবিত হিসাবে চালিয়ে যাওয়ার চেয়েও - আপনার ব্র্যান্ডের নতুন ফাইল wp_new_user_notifications.phpথেকে পদ্ধতিটি অনুলিপি করুন এবং প্রয়োজনীয় হিসাবে সংশোধন করুন।wp-includes/pluggable.phpwp_new_user_notifications.php

আপনার প্রশ্নের উত্তর দিতে: প্রাথমিক পাসওয়ার্ড ই-মেল বন্ধ করার জন্য শেষ wp_mailপদ্ধতি কলটি সরাতে যথেষ্ট ।


0
add_filter('send_password_change_email', '__return_false');

কাজ করে। তবে এটি অত্যাবশ্যক যে এটি প্লাগইনে এটি যুক্ত হয়েছে এটি স্বয়ং এবং থিমের জন্য ফাংশন.এফপি নয়।

ভালো লেগেছে।

class ... {
  public function __construct() {
    ...
    $this->init_hooks();
  }

  public function init_hooks() {
    add_filter('send_password_change_email', '__return_false');
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.