در این مقاله، قصد داریم نحوه محدود کردن دسترسی برخی از مدیران وردپرس به عملیات حذف و ویرایش کاربران را بررسی کنیم. این کار میتواند برای افزایش امنیت سایت و جلوگیری از تغییرات ناخواسته توسط مدیران دیگر بسیار مفید باشد.
چرا محدود کردن دسترسی مدیران اهمیت دارد؟
در وردپرس، کاربران با نقش مدیر کل (Administrator) به تمام بخشهای سایت دسترسی دارند. با این حال، در برخی موارد ممکن است بخواهید دسترسی تعدادی از مدیران را به عملیات مهمی مانند حذف یا ویرایش کاربران محدود کنید. به عنوان مثال:
- جلوگیری از حذف اشتباهی کاربران.
- ایجاد یک ساختار مدیریتی امنتر.
- اختصاص دسترسیهای خاص به مدیر اصلی.
راهحل: محدود کردن دسترسی با استفاده از کد
با اضافه کردن یک قطعه کد ساده به سایت خود، میتوانید دسترسی برخی از مدیران به عملیات حذف و ویرایش کاربران را محدود کنید. در این روش، تنها کافی است شناسه کاربری (ID) مدیرانی که باید دسترسیشان محدود شود را مشخص کنید.
کد زیر را به فایل functions.php قالب فعال سایت خود اضافه کنید یا در یک افزونه سفارشی قرار دهید:
/**
* @snippet woocommerce variable price
* @how-to Get Sajjadshadloo.ir FREE
* @author Sajjad Shadloo
*/
function restrict_specific_admin_editing( $caps, $cap, $user_id, $args ) {
// لیست مدیرانی که دسترسی آنها محدود شده است
$restricted_admin_ids = [12, 13, 14]; // شناسه مدیرانی که باید محدود شوند
// بررسی اینکه آیا عملیات مربوط به مدیریت کاربر است
if ( in_array( $cap, ['edit_user', 'remove_user', 'delete_user'], true ) ) {
$edit_user_id = $args[0] ?? 0; // شناسه کاربری که عملیات روی آن انجام میشود
// اگر شناسه کاربری که عملیات را انجام میدهد در لیست محدود شدهها باشد
if ( in_array( $user_id, $restricted_admin_ids, true ) ) {
$caps[] = 'do_not_allow'; // عملیات مسدود میشود
}
}
return $caps;
}
add_filter( 'map_meta_cap', 'restrict_specific_admin_editing', 10, 4 );
نحوه عملکرد کد
- تعیین مدیران محدود: در متغیر
$restricted_admin_ids، شناسه کاربری مدیرانی که باید محدود شوند را وارد کنید. به عنوان مثال: restricted_admin_ids = [12, 13, 14] (مدیرانی که شناسه آنها در این لیست قرار دارد، نمیتوانند کاربران را حذف یا ویرایش کنند.) - عملیاتهای محدود شده: کد بالا دسترسی به سه عملیات زیر را محدود میکند:
edit_user: ویرایش کاربران.remove_user: حذف کاربران از سایت.delete_user: حذف کامل کاربران.
- مدیرانی که در لیست نیستند: سایر مدیران سایت همچنان به این عملیاتها دسترسی خواهند داشت.
این کد برای سایتهایی که چندین مدیر دارند اما نیاز است دسترسی برخی از آنها محدود شود، بسیار کاربردی است. به عنوان مثال:
- سایتهای سازمانی که تیم مدیریتی دارند.
- فروشگاههای آنلاین با چندین مدیر.
- وبسایتهایی با ساختار سلسله مراتبی مدیریتی.
با استفاده از این روش ساده، میتوانید دسترسی مدیران را بر اساس شناسه کاربری آنها محدود کنید و از حذف یا ویرایش ناخواسته کاربران جلوگیری کنید. این کار نهتنها امنیت سایت شما را افزایش میدهد بلکه امکان مدیریت بهتر تیم را فراهم میکند.
اگر سوالی در این خصوص دارید یا نیاز به راهنمایی بیشتر دارید، در بخش نظرات در میان بگذارید!



اولین دیدگاه را شما بنویسید