আমি নিম্নলিখিত কোড ব্যবহার করব।
$query = new EntityFieldQuery();
$result = $query->entityCondition('entity_type', 'user')
->propertyCondition('status', 0)
// Avoid loading the anonymous user.
->propertyCondition('uid', 0, '<>')
// Comment out the next line if you need to enable also the super user.
->propertyCondition('uid', 1, '<>')
->execute();
if (isset($result['user'])) {
// Disable the email sent when the user account is enabled.
// Use this code if you don't use the code marked with (1).
// $old_value = variable_get('user_mail_status_activated_notify', TRUE);
// variable_set('user_mail_status_activated_notify', FALSE);
$uids = array_keys($result['user']);
$users = entity_load('user', $uids);
foreach ($users as $uid => $user) {
$user->status = 1;
$original = clone $user; // (1)
$user->original = $original; // (1)
user_save($user);
}
// Restore the value of the Drupal variable.
// Use this code if you don't use the code marked with (1).
// variable_set('user_mail_status_activated_notify', $old_value);
}
- কোডটি কেবল সক্ষম নয় এমন অ্যাকাউন্টগুলিতে লোড করে। ইতিমধ্যে সক্ষম অ্যাকাউন্টগুলি লোড করা অকেজো।
- কোডটি বেনামে ব্যবহারকারীর অ্যাকাউন্টটি লোড করা এড়িয়ে চলে, এটি আসল অ্যাকাউন্ট নয়।
ক্লাইভ ঠিক তখনই যখন তিনি বলেন যে ব্যবহারকারী_সেভ () ড্রুপাল ব্যবহার করে সক্ষম ব্যবহারকারীদের ইমেল পাঠাতে পারে। ফাংশন থেকে ব্যবহৃত কোডটি নিম্নলিখিতটি।
// Send emails after we have the new user object.
if ($account->status != $account->original->status) {
// The user's status is changing; conditionally send notification email.
$op = $account->status == 1 ? 'status_activated' : 'status_blocked';
_user_mail_notify($op, $account);
}
আমার কোড সহ, শর্তটি $account->status != $account->original->status
যাচাই করা হয়নি, এবং ইমেলটি প্রেরণ করা হয়নি। বিকল্প হিসাবে, আপনি কোড হিসাবে দেখানো হয়েছে হিসাবে FALSE
কল করার আগে Drual ভেরিয়েবল "ব্যবহারকারীর_মিল_স্ট্যাটাস_অ্যাক্টিভেটেড_নোটাইফাই" এর মান সেট করতে পারেন user_save()
। সেই ড্রুপাল ভেরিয়েবলের মান পরিবর্তন করা বিশ্বব্যাপী প্রভাব ফেলবে এবং অন্য কোডগুলি যখন এর মানতে পরিবর্তন করে তখন তা কাজ করবে না TRUE
। আমার কোডের সাহায্যে ব্যবহারকারীর অবজেক্টগুলি সংরক্ষণ করার জন্য কলটি কার্যকরভাবে কোনও ইমেল প্রেরণ করবে না তা নিশ্চিত হওয়ার জন্য অবজেক্টটির $user->original
অনুলিপি সেট করা $user
একমাত্র উপায় user_save()
।