الخميس، 16 أكتوبر 2014

إعادة توجيه المستخدمين عند تسجيل الدخول

في هذه التدوينة سنرى طريقة إعادة توجيه المستخدمين إلى صفحات مختلفة عند تسجيل الدخول حسب رتبة المستخدم أو إسمه.
إعادة توجيه المستخدمين عند تسجيل الدخول
في المثالين سنستعمل فيلتر login_redirect الذي يصلح تحديداً لتغيير المسار عند تسجيل الدخول في ووردبريس.

 إعادة توجيه المستخدمين حسب الرتب.

إذا كنت تريد إرسال مديرين, محررين, كتَّاب, مشتركين… إلى صفحات محددة من قبلك (كل واحد إلى صفحة مختلفة) فقط عليك إضافة هذا الكود إلى ملف functions.php او إلى إضافتك المخصصة.
01// ---------------------------------
02// إعادة توجيه المستخدمين حسب الرتبة
03// ---------------------------------
04function saidweb2_com_custom_login_redirect($redirect_to,$request$user) {
05    global $user;
06    if ( isset( $user->roles ) && is_array$user->roles ) ) {
07 
08        // إذا كن المستخدم مديراً
09        // يتم توجيهه إلى صفحة إدارة الإضافات
10        if ( in_array( 'administrator'$user->roles ) )
11            return home_url( '/wp-admin/plugins.php' );
12 
13        // إذا كان المستخدم محرراً
14        // يتم توجيهه إلى صفحة إدارة المقالات.
15        elseif ( in_array( 'editor'$user->roles ) )
16            return home_url( '/wp-admin/edit.php' );
17 
18        // باقي المستخدمين
19        // يتم توجيههم إلى الصفحة الرئيسية.
20        else
21            return home_url();
22 
23    else {
24        return $redirect_to;
25    }
26}
27add_filter( 'login_redirect','saidweb2_com_custom_login_redirect', 10, 3 );

 إعادة توجيه المستخدمين حسب إسم المستخدم.

إذا كنت تريد إعادة توجيه المستخدم حسب إسمه (المستعمل في تسجيل الدخول) تحديداً و ليس حسب رتبته, في الأول عليك تحديد إلى أي صفحة سيتم إرسال كل واحد.
مثلا, في موقع شركة يستعمل ووردبريس, قد يكون من المفيد توجيه مستخدمين معيَّنين إلى صفحات مخصصة تتضمن معلومات حول القسم الذي يهتم به كل واحد عوض الذهاب إلى الصفحة الرئيسية للوحة التحكم.
01// ---------------------------------
02// إعادة توجيه المستخدمين حسب الإسم
03// ---------------------------------
04function saidweb2_com_custom_login_redirect($redirect_to,$request$user) {
05 
06    // ندخل إلى المتغير العام
07    global $user;
08 
09    // نقوم بتخزين إسم المستخدم في متغير
10    $userredirect = esc_attr($user->user_login);
11 
12    // إذا كان إسم المستخدم هو  "admin"
13    // نقوم بتوجيهه إلى الصفحة الإفتراضية.
14    if $userredirect === 'admin' )
15        return $redirect_to;
16 
17    // إذا كان إسم المستخدم هو "said"
18    // نقوم بتوجيهه إلى صفحة محددة.
19    elseif $userredirect === 'said' )
20        return home_url( '/users/said/' );
21 
22    // إذا كان إسم المستخدم هو "mohammed"
23    // نقوم بتوجيهه إلى صفحة محددة.
24    elseif $userredirect === 'mohammed' )
25        return home_url( '/users/mohammed/' );
26 
27    // باقي المستخديمين
28    // يتم توجيههم إلى الصفحة الرئيسية للموقع.
29    else
30        return home_url();
31 
32}
33add_filter('login_redirect''saidweb2_com_custom_login_redirect', 10, 3);
في هذا الكود يجب تغيير أسماء المستخدمين (admin, said,mohammed) و كذلك روابط الصفحات التي يتم إعادة التوجيه إليها.
بعد ذلك من الواجب وضع رابط لصفحة تسجيل الدخول wp-login.php في مكان ما من الموقع ليتمكن المستخدمون من الدخول, أو إضافة نمودج تسجيل الدخول بواسطة wp_login_form().
هذه الوضيفة تقوم بإنشاء نمودج تسجيل الدخول (login form) بسيط لكي يستعمل في أي مكان من الموقع, يمكننا وضعه فيsidebar.php مثلاً و إعطائه تنسق معيّن عن طريق css.
1<?php wp_login_form(); ?>

 إعادة توجيه المستخدمين بواسطة إضافة.

Peter’s Login Redirect: تمكنك من إعادة توجيه المستخدمين عند تسجيل الدخول و عند تسجيل الخروج.
WordPress Login Redirect: هذه الإضافة تقوم بتوجيه المستخدمين من رتبة مشترك إلى الصفحة الرئيسية للموقع.
Login Redirect: تمكنك من إعادة توجيه المستخدمين إلى صفحات مخصص عند تسجيل الدخول.
Logout Redirect: ترسل المستخدمين إلى صفحات مخصصة عند تسجيل الخروج.

ليست هناك تعليقات:

إرسال تعليق