كيفية إخفاء منتج في WooCommerce أو إخفاء المنتجات حسب الفئة أو الأدوار

نشرت: 2020-02-24

هناك العديد من الطرق التي يمكنك استخدامها لإخفاء منتج معين في WooCommerce وفي هذا المنشور ؛ سنستكشف كل طريقة من هذه الطرق لإخفاء منتج في WooCommerce. هناك العديد من الأسباب التي تجعلك تفكر في إخفاء منتج من متجر WooCommerce ولكن على رأس القائمة عندما يكون المنتج غير متوفر أو عندما يكون المنتج محجوزًا من أجل عملاء محددين أو أدوار مستخدم.

إخفاء منتج WooCommerce

إذا كنت تريد الاختباء من المنتجات المخزنة ، فيجب أن تفكر أولاً في إضافة ملصق نفاد المخزون على المنتج بدلاً من إخفاء المنتج.

ومع ذلك ، إذا كنت لا تزال ترغب في إخفاء هذه المنتجات من المخزون أو أي منتجات WooCommerce أخرى ، فسأشارك في هذا المنشور كيف يمكنك إخفاء المنتجات حسب المعرف أو الاسم أو حسب الفئة.

إخفاء منتج WooCommerce باستخدام الخيارات

يأتي WooCommerce افتراضيًا مع خيار ممتاز يتيح للمستخدمين التحكم في رؤية المنتج.

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

  1. قم بتسجيل الدخول إلى لوحة تحكم موقع WordPress الخاص بك
  2. انقر فوق قائمة المنتجات كما هو موضح في الصورة أدناه حتى تتمكن من الوصول إلى المنتج الذي تريد إخفاءه عن المستخدمين باستخدام خيار الرؤية. كيفية إخفاء منتج في Woocommerce
  3. حدد المنتج من قائمة جميع المنتجات التي تريد إخفاءها كما هو موضح أدناه وانقر فوق تحرير للوصول إلى شاشة تحرير المنتج: كيفية إخفاء منتج في Woocommerce
  4. في شاشة تحرير المنتج على الجانب الأيمن أسفل ملف تعريف النشر أدناه ، يوجد خيار يسمى "رؤية الكتالوج" انقر فوق هذا الرابط وستظهر قائمة منسدلة بها خيارات ويكون الخيار الأخير مخفيًا.
    عند تحديد خيار الراديو هذا والنقر فوق موافق ، ثم قم بتحديث المنشور ، سيتم إخفاء المنتج من كتالوج المتجر. كما هو موضح في هذه الخطوات الثلاث (1،2،3): كيفية إخفاء منتج في Woocommerce
  5. عند حفظ هذين الخيارين وتحديث المنشور ، سيتم تعيين رؤية المنتج على "مخفي" كما ترى في الواجهة الأمامية للمتجر: كيفية إخفاء منتج في Woocommerce
  6. إذا قمت بالتحقق من خيار رؤية الكتالوج في الواجهة الخلفية على شاشة تحرير المنتج ، فمن المفترض أن ترى أنه تم تحديثه إلى مخفي عندما تم تحديث المنشور: كيفية إخفاء المنتج في Woocommerce

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

Woocommerce إخفاء منتجات فئة معينة من صفحة المتجر

إذا كنت ترغب في إخفاء منتجات معينة من صفحة المتجر في WooCommerce ، يمكنك تحقيق ذلك باستخدام خطاف الإجراء الذي يستهدف استعلام صفحة المتجر "woocommerce_product_query".

يجب أن تستخدم وظيفة رد الاتصال $ tax_query لتضييق نطاق المصطلحات المرتبطة بالمنتج الذي تريد إخفاءه.

في هذه الحالة ، فإن مفتاح المصطلحات في المصفوفة tax_query $ يعادل الفئة / العلامة كما أوضحت في المنشور كيفية الحصول على فئة منتج WooCommerce الحالية.

لنفترض أننا نريد إخفاء هذا المنتج من فئة "قطع غيار السيارات".

إخفاء منتج woocommerce

يمكننا استخدام مقتطف الشفرة التالي المضاف إلى ملف jobs.php لإخفاء المنتج من صفحة المتجر:

 / **
 * إخفاء منتج WooCommerce حسب الفئة من صفحة المتجر.
 *
 *param $ q
 * /
 

add_action ('woocommerce_product_query'، 'njengah_hide_product_by_category_shop_page') ؛ 

function njengah_hide_product_by_category_shop_page ($ q) {

    $ tax_query = (array) $ q-> get ('tax_query') ؛

    $ tax_query [] = مجموعة (
           "التصنيف" => "product_cat" ،
           "الحقل" => "سبيكة" ،
           'Terms' => array ('uncategorised'، 'auto-parts')، // لا تعرض المنتجات في فئة "قطع غيار السيارات" في صفحة المتجر.
           'عامل' => 'ليس في'
    ) ؛


    $ q-> set ('tax_query'، $ tax_query)؛

}

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

إخفاء منتج woocommerce

WooCommerce إخفاء المنتجات ما لم يتم تسجيل الدخول

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

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

سنستخدم هذا الرمز للتحقق من حالة تسجيل الدخول ثم ندمجها مع الاستعلام لإخفاء منتجات WooCommerce بشكل مشروط اعتمادًا على حالة تسجيل دخول المستخدم.

يجب أن يكون الرمز كما يلي:

 **
 * إخفاء منتج WooCommerce إذا لم يقم المستخدم بتسجيل الدخول 
 *
 *param $ query
 * /
 

الدالة njengah_hide_product_if_user_not_logged ($ query) {
	
	
    إذا (الاستعلام $-> is_main_query () && is_woocommerce () &&! is_user_logged_in ()) {
		
        tax_query $ = مجموعة (
            مجموعة مصفوفة(
                    "التصنيف" => "product_cat" ،
                    "الحقل" => "سبيكة" ،
                    'Terms' => array ('uncategorised'، 'auto-parts')، // لا تعرض المنتجات في فئة "قطع غيار السيارات" في صفحة المتجر.
                    'عامل' => 'NOT IN' // استبعاد
                )
            ) ؛

        الاستعلام $-> مجموعة ('tax_query'، $ tax_query)؛
    }
}

add_action ('pre_get_posts'، 'njengah_hide_product_if_user_not_logged') ؛

كما ترى ، نتحقق بشكل مشروط مما إذا كان المستخدم قد قام بتسجيل الدخول باستخدام وظيفة is_user_logged_in () قبل أن نتمكن من متابعة الاستعلام.

Woocommerce إخفاء المنتجات حسب أدوار المستخدم

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

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

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

        $ الأدوار [0] // دور المستخدم الحالي

يجب أن ندمج هذا الرمز مع الإجراء السابق pre_get_posts والرمز الذي سيخفي المنتج لجميع المستخدمين يتوقعون أن يكون المسؤول كما يلي:

 / **
 * إخفاء منتج WooCommerce من خلال دور المستخدم كما هو الحال في هذه الحالة ، يمكن للمسؤول فقط رؤية هذا المنتج 
 *
 *param $ query
 * /


الدالة njengah_hide_product_by_user_role ($ query) {
	
	 المستخدم $ = wp_get_current_user () ، // الحصول على وتعيين المستخدم الحالي 
	 $ الأدوار = (مجموعة) $ user-> الأدوار ؛ // الحصول على الدور 
	
	
    إذا (استعلام $-> is_main_query () && is_woocommerce () && $ categories [0]! = 'المسؤول') {
		
        tax_query $ = مجموعة (
            مجموعة مصفوفة(
                    "التصنيف" => "product_cat" ،
                    "الحقل" => "سبيكة" ،
                    'Terms' => array ('uncategorised'، 'auto-parts')، // لا تعرض المنتجات في فئة "قطع غيار السيارات" في صفحة المتجر.
                    'عامل' => 'NOT IN' // استبعاد
                )
            ) ؛

        الاستعلام $-> مجموعة ('tax_query'، $ tax_query)؛
    }
}

add_action ('pre_get_posts'، 'njengah_hide_product_by_user_role') ؛

كما ترون في هذا السطر من التعليمات البرمجية حيث نقوم بفحص الاستعلام بشكل مشروط ، لقد قدمت الشرط للتحقق مما إذا كان دور المستخدم ليس مشرفًا - $ features [0]! = "المسؤول" ثم ننتقل إلى الاستعلام. هذه هي الطريقة التي تخفي بها منتجات WooCommerce بناءً على دور المستخدم.

يمكنك شرح هذا المثال ليناسب احتياجاتك الخاصة ويمكنك أيضًا دمج كل هذه الحالات لإنشاء طريقة شرطية واحدة لإخفاء منتجات WooCommerce.

افكار اخيرة

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