حذف خودکار کاربران وردپرس پس از مدت زمان تعیین شده

همانطور که می دانید برای پاک کردن و حذف کاربران در وردپرس به راحتی کافی است تا به مسیر پیشخوان> کاربران> همه کاربران رفته و سپس کاربر مورد نظر را انتخاب و وی را حذف کنید.

اما آیا تا به حال این سوال برایتان پیش آمده است تا بخواهید به صورت خودکار بدون اینکه خود شما اقدام به حذف کاربران کنید، دوره ای زمانی مشخص را تعیین کنید تا وردپرس پس از اتمام دوره به صورت خودکار کاربران را حذف کند؟

در این آموزش از دکتر وردپرس ثصد دارم تا به معرفی قطعه کدی بپردازم که با استفاده از آن قادر خواهید بود تا به صورت خودکار یک دوره زمانی مشخص را تعیین کنید و سپس نقش کاربری خاصی را انتخاب کرده و منتظر بمانید تا اتمام دوره کاربران به صورت خودکار از سایت حذف شوند.

حذف خودکار کاربران وردپرس پس از مدت زمان تعیین شده

 

حذف خودکار کاربران وردپرس پس از مدت زمان تعیین شده

 

برای شروع کار ابتدا فایل فانکشن قالب خود را باز کرده و کدهای زیر را در مکان مناسبی از آن قرار دهید.

function auto_delete_users() {
global $wpdb;
$userlevel = 0; // 0 = subscriber
$deleteafter = 30; // delete User after X days
$query = $wpdb->prepare("SELECT $wpdb->users.ID FROM $wpdb->users LEFT JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key = %s AND $wpdb->usermeta.meta_value = %d AND DATEDIFF(CURDATE(), $wpdb->users.user_registered) > %d", $wpdb->prefix.'user_level',$userlevel,$deleteafter);
if($oldUsers = $wpdb->get_results($query, ARRAY_N)){
foreach ($oldUsers as $user_id) {
wp_delete_user($user_id[0]);
}
}
}
add_action('daily_clean_database', 'auto_delete_users');
wp_schedule_event(time(), 'daily', 'daily_clean_database');

همانطور که در این قطعه کد مشاهده می کنید ابتدا در خط دوم نوع نقش کاربری را بر اساس نیاز خود انتخاب کرده و سپس در خط سوم به جای عدد ۳۰ که بر اساس روز درج شده است مدت زمان دلخواه خود را وارد کنید، با این کار پس از پایان رسیدن این دوره زمانی تمامی کاربرانی که دارای چنین نقش کاربری در سایت باشند به صورت خودکار از سایت حذف خواهند شد.

اما پیش از اینکه از این کد استفاده کنید، حتی شده برای آزمایش کردن آن نیز، یک بک آپ از دیتابیس خود تهیه کنید!

امتیاز شما برای این مقاله
ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.