چگونه یک کاربر وردپرس را ممنوع کنیم

چند روز پیش از من خواسته شده بود كه سیستم ایجاد یك كاربر وردپرس را از نصب ممنوع كند. بنابراین یک افزونه ساده ایجاد کردم و می خواستم اصول اولیه این افزونه را با شما در میان بگذارم. در این آموزش ما فیلترهای WordPress ، اقدامات ، مدیریت ستون های کاربران و موارد عالی دیگری را پوشش خواهیم داد.


مرحله 1: افزونه را ایجاد کنید

یک بار دیگر ، در اینجا بسیار پیچیده است ، تنها کاری که شما باید انجام دهید اینست که یک پوشه جدید با “پلاگین wp-content / plugin” بنام “کاربران ممنوع” ایجاد کنید. در این پوشه ، پرونده جدیدی بنام “ban-users.php” ایجاد کنید ، این کد را برای چسباندن آن باز کنید:

مرحله 2: کادر صفحه را در صفحه نمایه کاربران اضافه کنید

اولین کاری که باید انجام دهیم این است که یک کادر چک را در هر صفحه نسخه پروفایل کاربر اضافه کنید. وقتی این کادر کادر را بررسی کنید ، یک گزینه meta کاربر ذخیره می کند که نشان می دهد کاربر دیگر مجاز به ورود به وب سایت شما نیست.

در اینجا کد آمده است:

/ **
* سرپرست مدیریت
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_admin_init ()

// ویرایش نمایه کاربر
add_action ('edit_user_profile'، 'rc_edit_user_profile')؛
add_action ('edit_user_profile_update'، 'rc_edit_user_profile_update')؛

}
add_action ('admin_init'، 'rc_admin_init')؛

این کد به سادگی ایجاد تماس با عملکردی است که اکنون باید ایجاد کنیم. این عملکرد یک کادر انتخاب به صفحه نمایه کاربران اضافه می کند.

/ **
* کادر انتخاب سفارشی را به صفحه نسخه کاربر اضافه می کند
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_edit_user_profile ()
اگر (! current_user_can ('edit_users')) {
برگشت؛
}

$ user_id جهانی؛

// کاربر نمی تواند خود را غیرفعال کند
$ current_user = wp_get_current_user ()؛
$ current_user_id = $ current_user-> ID؛
if ($ current_user_id == $ user_id) {
برگشت؛
}

// بررسی کنید که فعال باشد
$ بررسی شده = چک شده (get_user_option ('rc_banned'، $ user_id، false))؛

// کادر نمایش
پژواک
ممنوع کردن کاربر
'؛ }

اکنون ما باید تابعی را داشته باشیم که مقدار جعبه چک را در بانک اطلاعات ذخیره کند:

/ **
* کادر انتخاب سفارشی را ذخیره کنید
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_edit_user_profile_update ()

اگر (! current_user_can ('edit_users')) {
برگشت؛
}

$ user_id جهانی؛

// کاربر نمی تواند خود را غیرفعال کند
$ current_user = wp_get_current_user ()؛
$ current_user_id = $ current_user-> ID؛
if ($ current_user_id == $ user_id) {
برگشت؛
}

// قفل کردن
if (صادر ($ _POST ['rc_ban']) && $ _POST ['rc_ban'] = 'روشن') {
rc_ban_user ($ user_id)؛
} other {// باز کردن
rc_unban_user ($ user_id)؛
}

}

همانطور که مشاهده می کنید این عملکرد جدید از دو عملکرد دیگر استفاده می کند: rc_ban_users () و rc_unban_users (). نام آنها کاملاً صریح است ، اولین کسی که این کاربر را ممنوع کرده است ، در بانک اطلاعاتی ذخیره می کند ، دوم این که کاربران را باز می کند.

مرحله 3: کاربران را ممنوع کنید

اکنون زمان آن رسیده است که تابع rc_ban_users () را ایجاد کنیم. در این تابع باید بررسی کنیم که آیا مقداری از قبل ذخیره شده است یا خیر ، اگر نیاز به ذخیره مقدار داشته باشیم یا نه. به همین دلیل است که من تابعی را که بعداً توصیف می کنم بنامم: rc_is_user_banned ():

/ **
* منع کاربر
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_ban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id)؛

// وضعیت به روز رسانی
اگر (! $ old_status)
update_user_option ($ user_id ، 'rc_banned' ، درست ، نادرست)؛
}
}

مرحله 4: کاربران را ممنوع کنید

عملکرد زیر برعکس عملکردی است که ما فقط ایجاد کردیم: ما باید توانایی استفاده از "منع" کاربران را بدهیم:

/ **
* ممنوع الکار کردن کاربر
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
تابع rc_unban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id)؛

// وضعیت به روز رسانی
if ($ old_status)
update_user_option ($ user_id ، 'rc_banned' ، نادرست ، نادرست)؛
}
}

مرحله 5: آیا کاربر ممنوع است?

ما در rc_ban_users () و rc_unban_users () دیدیم که از تابعی به نام rc_is_user_banned () استفاده می کنیم تا بررسی کنیم کاربر ممنوع است یا خیر. بیایید آن را ایجاد کنیم:

/ **
* بررسی می کند که کاربر قبلاً ممنوع شده باشد
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_is_user_banned ($ user_id) {
Return get_user_option ('rc_banned'، $ user_id، false)؛
}

در اصل ، این تابع به سادگی مقدار گزینه ذخیره شده در rc_ban_users ().

در حال حاضر یک کادر تأیید جدید در صفحه نسخه کاربر داریم که باید آن را دوست داشته باشد:

ban_users_1

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

مرحله 5: از ورود به سایتهای ممنوعه جلوگیری کنید

برای این منظور باید از یک فیلتر پیش فرض وردپرس به نام "wp_authenticate_user" استفاده کنیم. برای این فیلتر ، تابعی به نام "rc_authenticate_user ()" می گیریم. این عملکرد از کلاس WP_Error.

/ **
* بررسی کنید که کاربر در حین ورود به سیستم قفل شده است
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_authenticate_user ($ کاربر) {

اگر (is_wp_error ($ کاربر)) {
بازگشت کاربر $؛
}

// در صورت ممنوع بودن حساب کاربری خطای بازگشت
$ qedexe = get_user_option ('rc_banned'، $ user-> ID، false)؛
اگر ($ ممنوع) {
WP_Error جدید ("rc_banned" ، __ ("خطا: این حساب کاربری غیرفعال است. '،' rc '))؛
}

بازگشت کاربر $؛
}

اکنون ، فقط باید فیلتر را اضافه کنیم:

add_filter ('wp_authenticate_user'، 'rc_authenticate_user'، 1)؛

نتیجه

ما افزونه ای ایجاد کردیم که یک کادر چک را به صفحه نسخه پروفایل کاربر اضافه می کند. ما از یک تابع دوم برای ذخیره مقدار در کادر تأیید استفاده کردیم و یک تابع ایجاد می کنیم که کاربر WordPress و دیگری را برای باز کردن قفل کاربر ممنوع کند. ما همچنین یک عملکرد کوچک ایجاد کردیم تا بررسی کنیم کاربر ممنوع است یا خیر. و ما در آخر با استفاده از کلاس پیش فرض WP_Error WordPress یک تابع را به فیلتر "wp_authenticate_user" وصل کردیم.

اگر این آموزش را دوست داشتید ، نسخه برتر این افزونه را دوست خواهید داشت: Users Access Manager.

بارگیری کامل کد Github

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map