تخطَّ إلى المحتوى

أهلاً بيك في ميرور

سجّل دخولك لمتابعة طلباتك واشتراكاتك ورصيد محفظتك.

هدية في محفظتك عند إنشاء حساب جديد

تسجيل الدخول إنشاء حساب جديد
تواصل عبر واتساب

أكواد تطوير الوردبريس

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

قراءة في 2 دقائق

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

هل ترغب في إعادة التوجيه بعد تسجيل الدخول إلى صفحة معينة حسب دور المستخدم في ووردبريس؟ إذا كان الأمر كذلك، يمكنك استخدام الشيفرة التالية:

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

php
function wc_custom_user_redirect( $redirect, $user ) {
    // Get the first of all the roles assigned to the user
    $role = $user->roles[0];
    $dashboard = admin_url();
    $home = home_url();
    
    if( $role == 'administrator' ) {
        // توجيه المسؤولين إلى لوحة التحكم
        $redirect = $dashboard;
    } elseif ( $role == 'shop-manager' ) {
        // توجيه مديري المتجر إلى الصفحة الرئيسية
        $redirect = $home;
    } elseif ( $role == 'editor' || $role == 'author' ) {
        // توجيه الناشرين والمحررين إلى الصفحة الرئيسية
        $redirect = $home;
    } elseif ( $role == 'customer' || $role == 'subscriber' ) {
        // توجيه العملاء والمشتركين إلى صفحة "حسابي"
        $redirect = wc_get_page_permalink( 'myaccount' );
    } else {
        // توجيه أي دور آخر إلى الصفحة الرئيسية
        $redirect = $home;
    }
    
    return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'wc_custom_user_redirect', 10, 2 );

هذا الشيفرة يستخدم الفلتر woocommerce_login_redirect لتحديد الوجهة التي يتم توجيه المستخدمين إليها بعد تسجيل الدخول. يتم استخدام دور المستخدم لتحديد الوجهة المناسبة، حيث يتم توجيه المسؤولين إلى لوحة التحكم، ومديري المتجر والمحررين والناشرين إلى الصفحة الرئيسية، والعملاء والمشتركين إلى صفحة “حسابي”، وأي دور آخر إلى الصفحة الرئيسية.

كيف يعمل فلتر إعادة التوجيه في WooCommerce؟

فلتر woocommerce_login_redirect يسمح لك بتغيير وجهة إعادة التوجيه بعد تسجيل الدخول. يتم استدعاؤه تلقائياً عند إتمام عملية تسجيل الدخول، ويستقبل متغيرين: $redirect و$user. يمكنك تعديل قيمة $redirect لتوجيه المستخدم إلى أي صفحة تختارها.

يُعتبر هذا الفلتر أداة قوية لتخصيص تجربة المستخدم، خاصةً عندما يكون لديك أدوار متعددة على موقعك. بدلاً من ترك جميع المستخدمين في صفحة واحدة، يمكنك توجيههم إلى لوحة التحكم أو صفحة الحساب أو أي صفحة أخرى ذات صلة.

يجب وضع الكود في ملف functions.php الخاص بالقالب أو في إضافة مخصصة لضمان استمرارية العمل بعد تحديثات القالب.

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

الكود التالي يوضح كيفية توجيه كل دور مستخدم إلى صفحة محددة:

function wc_custom_user_redirect( $redirect, $user ) { $role = $user->roles[0]; $dashboard = admin_url(); $home = home_url(); if( $role == ‘administrator’ ) { $redirect = $dashboard; } elseif ( $role == ‘shop-manager’ ) { $redirect = $home; } elseif ( $role == ‘editor’ || $role == ‘author’ ) { $redirect = $home; } elseif ( $role == ‘customer’ || $role == ‘subscriber’ ) { $redirect = wc_get_page_permalink( ‘myaccount’ ); } else { $redirect = $home; } return $redirect; } add_filter( ‘woocommerce_login_redirect’, ‘wc_custom_user_redirect’, 10, 2 );

هذا الكود يضمن أن المسؤولين يذهبون إلى لوحة التحكم، بينما يذهب العملاء إلى صفحة “حسابي”، ويُعاد توجيه أي دور آخر إلى الصفحة الرئيسية.

أسئلة شائعة

هل يمكن تعديل الكود لتوجيه دور آخر؟

نعم، يمكنك إضافة شرط جديد في الكود لتحديد وجهة أي دور إضافي تريد.

ما هي أفضل طريقة لتخزين هذا الكود؟

ضعه في ملف functions.php للقالب أو أنشئ إضافة مخصصة لتجنب فقدانه عند تحديث القالب.

هل يتطلب هذا الكود أي إعدادات إضافية في WooCommerce؟

لا، الفلتر يعمل تلقائياً بعد إضافة الكود، ولا يحتاج إلى إعدادات إضافية.

كيف أتحقق من أن التوجيه يعمل؟

قم بتسجيل الدخول كأحد الأدوار المختلفة وتأكد من أنك تُعاد توجيهك إلى الصفحة الصحيحة.

شارك المقال