كيفية إخفاء شريط المسؤول لعملاء WooCommerce أو حسب أدوار المستخدم

نشرت: 2020-02-23

إخفاء شريط الإدارة حسب الأدوار من المهم إخفاء شريط المسؤول في WooCommerce عن المشتركين والعملاء والمستخدمين غير الإداريين لتجنب الوصول إلى لوحة معلومات WordPress. هناك طرق لإخفاء شريط إدارة WordPress كما هو موضح في هذا البرنامج التعليمي - كيفية إخفاء شريط الإدارة في WordPress. يمكن استخدام هذه الأساليب نفسها في موقع WooCommerce ولكن مع بعض الشروط لكل حالة.

WooCommerce Hide Admin Bar للعملاء أو المشتركين

إخفاء شريط المسؤول لخيار إدارة WooCommerce

لإخفاء شريط المسؤول الخاص بالمسؤول ، ربما توجد بعض المكونات الإضافية التي يمكن أن تساعد أيضًا وستعمل مع WooCommerce أيضًا.

قبل استخدام مكون إضافي ، يجب أولاً تجربة هذا الخيار السريع في لوحة تحكم مسؤول WordPress. يعمل هذا الخيار جيدًا لمواقع WooCommerce أيضًا ، ولا يوجد فرق.

انتقل إلى إعدادات ملف تعريف مستخدم المسؤول وتحقق من هذا الخيار لإخفاء شريط المسؤول للمسؤولين عند عرض الموقع. WooCommerce Hide Admin Bar للعملاء أو المشتركين

قم بإلغاء تحديد هذا الخيار وحفظ الإعدادات ثم قم بزيارة الواجهة الأمامية لمعرفة ما إذا كان شريط الإدارة قد تم إخفاؤه. كما ترى في الصورة أدناه ، سيتم إخفاء شريط المسؤول للمستخدم المسؤول عند عرض الموقع.

WooCommerce Hide Admin Bar للعملاء أو المشتركين

هذه طريقة مهمة للحصول على لمحة عن شكل موقعك عندما لا تكون مسجلاً الدخول.

كما أنه يساعد عندما تحاول تصحيح بعض مشكلات سمة WooCommerce التي تتعلق بعرض الرأس.

WooCommerce Hide Admin Bar Code Option

لتنفيذ الأمر نفسه لعملاء WooCommerce والمشتركين ، نحتاج إلى استخدام عامل التصفية 'show_admin_bar' لإرجاع خطأ لأننا نخفي شريط المسؤول.

هناك العديد من الطرق التي يمكنك من خلالها استخدام هذا الخطاف وهناك أيضًا وظيفة بنفس الاسم تعمل بنفس الاسم.

تأخذ الوظيفة show_admin_bar( bool $show ) معلمة واحدة هي قيمة Boolean (إما صحيحة أو خطأ) ويمكن استخدامها على النحو التالي:

 show_admin_bar (خطأ) ؛

هذا الرمز ، عند إضافته إلى ملف function.php الخاص بقالبك ، سيخفي شريط الإدارة. لقد اختبرته مع تثبيت ثيم واجهة متجر WooCommerce وهو يعمل بشكل مثالي ويخفي شريط الإدارة.

WooCommerce Hide Admin Bar للعملاء أو المشتركين

يمكنك تحسين هذه الوظيفة بشكل أكبر وإضافة اختبار شرطي حيث تسمح للمسؤول بعرض شريط المسؤول بينما لا يجب على العميل عرضه.

في هذه الحالة ، ستختبر بشكل مشروط دور العميل أو أي دور آخر على موقعك تريد إخفاء شريط المسؤول منه.

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

أدوار مستخدم WordPress

للحصول على دور المستخدم الحالي ، كتبت تعليميًا حول كيفية الحصول على الدور الحالي في WordPress ويمكنك استخدامه في الحالة للحصول على دور مستخدم العميل وتعيين وظيفة show_admin_bar() على false.

في هذه الحالة ، ما يلي هو الكود الذي يمكنك استخدامه للحصول على دور المستخدم الحالي والتحقق المشروط من أن دور المستخدم هو عميل.

هذا الرمز الذي شاركته في البرنامج التعليمي حول كيفية الحصول على دور المستخدم الحالي في WordPress ويمكننا إعادة توظيفه في هذه الحالة:

 add_action ('wp_head'، 'njengah_get_current_user_role') ؛

الوظيفة njengah_get_current_user_role () {

  if (is_user_logged_in ()) {// تحقق مما إذا كان هناك مستخدم قام بتسجيل الدخول

   المستخدم $ = wp_get_current_user () ، // الحصول على وتعيين المستخدم الحالي
   $ الأدوار = (مجموعة) $ user-> الأدوار ؛ // الحصول على الدور

   // إرجاع $ الأدوار؛ // إرجاع الدور للمستخدم الحالي

     // اختبار مع print_r
      طباعة ('<قبل>') ؛
      print_r (الأدوار $) ؛
       طباعة ('</pre>') ؛

    } آخر {

          مجموعة العودة () ؛ // إذا لم يكن هناك تسجيل دخول للمستخدم ، فارجع مصفوفة فارغة

   }

}

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

WooCommerce Hide Admin Bar Code Option

يمكننا الحصول على دور المستخدم هذا من المصفوفة باستخدام key [0] وعندما نقوم بتعديل الرمز قليلاً ونطبع دور المستخدم ، يجب أن نرى دور المستخدم مطبوعًا كما في الكود المعدل التالي:

 add_action ('wp_head'، 'njengah_get_current_user_role_print') ؛

الوظيفة njengah_get_current_user_role_print () {

        if (is_user_logged_in ()) {// تحقق مما إذا كان هناك مستخدم قام بتسجيل الدخول

          المستخدم $ = wp_get_current_user () ، // الحصول على وتعيين المستخدم الحالي

          $ الأدوار = (مجموعة) $ user-> الأدوار ؛ // الحصول على الدور

            صدى $ الأدوار [0]؛

              } آخر {

              مجموعة العودة () ؛ // إذا لم يكن هناك تسجيل دخول للمستخدم ، فارجع مصفوفة فارغة

       }

}

نظرًا لأننا حصلنا على دور المستخدم بنجاح ، يمكننا الآن استخدامه في وظيفة show_admin_bar() بشكل مشروط لإخفاء شريط المسؤول لدور مستخدم معين يمكن أن يكون أي دور.

للتوضيح ، نقوم الآن بإخفاء شريط المسؤول لدور المسؤول باستخدام الكود أدناه:

 add_action ('wp_head'، 'njengah_hide_admin_bar_for_administration') ؛

الوظيفة njengah_hide_admin_bar_for_administration () {

     if (is_user_logged_in ()) {// تحقق مما إذا كان هناك مستخدم قام بتسجيل الدخول

       المستخدم $ = wp_get_current_user () ، // الحصول على وتعيين المستخدم الحالي

         $ الأدوار = (مجموعة) $ user-> الأدوار ؛ // الحصول على الدور

          إذا ($ players [0] == 'admin') {// تحقق من الدور هنا. يمكنك استبداله بأدوار مستخدم أخرى. مثال محرر "العملاء" إلخ

           صدى $ الأدوار [0]؛ // طباعة الدور المراد فحصه لأغراض العرض (يجب إزالته في الإنتاج)

           show_admin_bar (خطأ) ؛ // إخفاء دور هذا الشرط

     }

        } آخر {

           مجموعة العودة () ؛ // إذا لم يكن هناك تسجيل دخول للمستخدم ، فارجع مصفوفة فارغة

     }

}

عند إضافة هذا الرمز إلى ملف jobs.php ، سترى دور المسؤول معروضًا على الشاشة كما كان من قبل وتم إخفاء شريط المسؤول بشكل مشروط.

يمكنك استبدال دور المسؤول هذا بالعميل ويمكنك أيضًا إضافة العديد من الاختبارات الشرطية في الحالة على النحو التالي:

 add_action ('wp_head'، 'njengah_hide_admin_bar_for_customer') ؛

الوظيفة njengah_hide_admin_bar_for_administration () {

if (is_user_logged_in ()) {// تحقق مما إذا كان هناك مستخدم قام بتسجيل الدخول

              المستخدم $ = wp_get_current_user () ، // الحصول على وتعيين المستخدم الحالي

                $ الأدوار = (مجموعة) $ user-> الأدوار ؛ // الحصول على الدور

                    إذا ($ players [0] == 'customer') {// تحقق من الدور هنا. يمكنك استبداله بأدوار مستخدم أخرى. مثال محرر "العملاء" إلخ

                صدى $ الأدوار [0]؛ // طباعة الدور المراد فحصه لأغراض العرض (يجب إزالته في الإنتاج)

                      show_admin_bar (خطأ) ؛ // إخفاء دور هذا الشرط

        }

        } آخر {

                مجموعة العودة () ؛ // إذا لم يكن هناك تسجيل دخول للمستخدم ، فارجع مصفوفة فارغة

      }

}

كما في حالة المسؤول عند الاختبار ، يجب أن ترى اسم الدور معروضًا كعميل وشريط المسؤول مخفي.

إخفاء شريط المسؤول حسب إمكانيات المستخدم الحالية

طريقة بديلة لإخفاء شريط المسؤول عن جميع المستخدمين تتوقع من المشرف إضافة الكود التالي إلى function.php:

 إذا (! current_user_can ('management_options')) {

   show_admin_bar (خطأ) ؛

}

يستخدم هذا الرمز الاختبار الشرطي current_user_can() ويمكنك تعديله إلى امتيازات مختلفة مثل العميل يجب أن يكون على النحو التالي:

 إذا (! current_user_can ('read')) {

   show_admin_bar (خطأ) ؛

}

هذا يعادل دور المشترك في WordPress. ينشئ WooCommerce دورين - العميل ومدير المتجر. العميل يعادل المشترك ، لذلك في هذه الحالة ، تتم قراءة قدرات المشترك.

يمكنك التحقق من جميع إمكانيات مستخدمي WordPress من وثائق الأدوار والقدرات. يمكنك معرفة المزيد حول أدوار WooCommerce من مستندات أدوار وإمكانيات WooCommerce.

تنفيذ التعليمات البرمجية لإخفاء شريط الإدارة في WooCommerce

في الكود أعلاه ، أوضحنا بالتفصيل كيف يعمل كل شيء لإخفاء شريط الإدارة في WooCommerce.

إذا لاحظت أنني كنت أستخدم add_action() مرفقًا بـ 'wp_head' لغرض الاختبار ولكن في الإنتاج ، نحتاج إلى استخدام مرشح بدلاً من خطاف الإجراء.

في هذه الحالة ، يجب ربط 'show_admin_bar' ويجب أن يكون الكود كما يلي:

 add_filter ('show_admin_bar'، 'njengah_hide_admin_bar_for_customers'، 20، 1) ؛

function njengah_hide_admin_bar_for_customers ($ show) {

           المستخدم $ = wp_get_current_user () ، // الحصول على وتعيين المستخدم الحالي

            $ الأدوار = (مجموعة) $ user-> الأدوار ؛ // الحصول على الدور

               if ($ tools [0] == 'administator') {// اختبر أدوار المستخدم هنا بناءً على مفاتيح المصفوفة [0] [1] والقيم ذات الصلة

                       عرض $ = خطأ ؛

                              عودة $ show؛

               }

}

يمكنك أيضًا استخدام إمكانات كل دور لإخفاء شريط المسؤول وسيكون المرشح على النحو التالي:

 / **

* إخفاء شريط المسؤول للأدوار الأخرى يتوقع المشرف

* /

add_filter ('show_admin_bar'، 'njengah_hide_admin_bar_others_expect_admin'، 20، 1) ؛

الوظيفة njengah_hide_admin_bar_others_expect_admin ($ show) {

    if (! current_user_can ('Administrator')) $ show = false؛

     عودة $ show؛

    }

أضف هذا الرمز إلى function.php لإخفاء شريط الإدارة عن الأدوار الأخرى التي يتوقعها المسؤولون.

افكار اخيرة

لقد أوضحنا كيف يمكنك إخفاء شريط الإدارة في WordPress أو WooCommerce باستخدام أساليب مختلفة. يمكنك اختيار أيٍّ من هاتين الطريقتين وإضافة الرمز إلى function.php الخاص بك. يمكنك أيضًا تعديل الكود بشكل أكبر لجعله مناسبًا للسيناريوهات المختلفة مثل إخفاء شريط المسؤول من دور مستخدم مخصص في WordPress.