🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ رضا
نقش کاربر
مجید زادگی حل شده توسط مجید زادگی

سلام

وقتی کاربر جدیدی به صورت دستی وارد می‌کنیم و نقش مشترک یا نقشهای دیگر می‌دهیم هنگام لاگین به پنل مدیریت هدایت می‌شود منتهی در پنل مدیریت یکسری گزینه‌ها به او نشان نمی‌دهد 

1- آیا در جلسات بعدی آموزش می‌دهید چگونه یک فرم ایجاد کنیم و بعد کاربران از طریق آن به خود سایت هدایت شوند و نه به پنل مدیریت وردپرس؟

2- منظور از نقش مشترک همان کاربر عادی است؟

3- آیا می‌توان نقشهای دیگری هم ایجاد کرد؟ 

4-چگونه می‌توان کاربر با یک نقش ایجاد کرد که مثلا فقط بتواند نوشته ایجاد کند یا فقط به کامنت‌ها پاسخ دهد یا کار خاصی را انجام دهد؟

با تشکر از لطف شما

سلام آقا رضا

۱− بله در جلسات آموزشی فرم ثبت نام و لاگین به صورت جدا و کدنویسی شده آموزش داد هست

 

می تونید با اضافه کردن کد زیر بعد از لاگین شدن کاربر اون رو کنترل کنید فقط اگر دقت کنید من دوتا شرط رو گذاشتم که میاد چک می‌کنه اگر کاربر ادمین باشه (نقش ادمین) به پنل مدیریت وردپرس هدایت میشه و در غیر این صورت به صفحه اصلی می‌تونید هر کنترلی که دوست دارید اعمال کنید

 

function wpdocs_my_login_redirect( $url, $request, $user ) {
    if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
        if ( $user->has_cap( 'administrator' ) ) {
            $url = admin_url();
        } else {
            $url = home_url();
        }
    }
    return $url;
}
add_filter( 'login_redirect', 'wpdocs_my_login_redirect', 10, 3 );

 

۲− بله می‌تونید از طریق لینک زیر اطلاعات بیشتری در مورد انواع نقش‌های کاربرها بگیرید

https://wordpress.org/support/article/roles-and-capabilities/#subscriber

 

۳− بله همون لینک بالا رو مطالعه بفرمایید و بعد دستوری در وردپرس هست برای اینکار که لینک توضیحات کامل اون رو هم می‌زارم

https://developer.wordpress.org/reference/functions/add_role

۴− طبق دستور بالا شما نقش رو ایجاد می‌کنید و هر جای برنامه نیاز به کنترل داشته باشید می‌تونید قبل از نمایش مثلا کامنت‌ها یا هر دسترسی نقش کاربر رو چک کنید و اگر اجازه داشت اون رو نمایش بدید توی یک دستور if

برای اینکه بتونید roles‌ها کاربر لاگین شده فعلی رو دریافت کنید از دستور زیر می‌تونید استفاده کنید

$user = wp_get_current_user(); // getting & setting the current user 
$roles = ( array ) $user->roles; // obtaining the role 
بهترین پاسخ
مجید زادگی ۰۸ آذر ۱۳۹۹، ۱۴:۰۰

سلام

با تشکر از پاسخ شما.

من هنوز با توابع ورد پرس آشنا نیستم و نحوه استفاده آن را نمی‌دانم آیا در ادامه جلسات این توابع معرفی و آموزش داده می‌شوند؟   (من روی جواب شما تحقیق می‌کنم)

رضا ۰۸ آذر ۱۳۹۹، ۱۴:۴۱