ووردبريس

إزالة فئة منتج معينة من حلقة ووكومرس بسهولة

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

فهم الأسباب وراء الحاجة لاستبعاد فئات معينة

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

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

يمكنك استخدام الكود التالي لإخفاء فئة معينة من المنتجات عند عرضها في WooCommerce. سنستخدم دالة add_filter لتعديل الاستعلام القائم على الفئات ومنع عرضها إذا كان المستخدم غير مسجل للدخول.

add_filter( 'woocommerce_product_query_tax_query', 'exclude_specific_product_category_query', 10, 2 );
function exclude_specific_product_category_query( $tax_query) {
    if( !is_user_logged_in()){
        $taxonomy = 'product_cat'; 
        $tax_query[] = array(
            'taxonomy' => $taxonomy,
            'field'    => 'term_id',
            'terms'    => array(48),
            'operator' => 'NOT IN',
        );
    }
    return $tax_query;
}

هذا الكود سيعمل على استبعاد المنتجات التي تنتمي إلى الفئة ذات الـterm_id 48. إذا كان المستخدم غير مسجل، فلن تظهر هذه المنتجات له.

التأكد من عدم ظهور الفئة في قائمة الفئات

على الرغم من أن هذه القاعدة قد تمنع ظهور المنتجات من الفئة المحددة، قد تستمر الفئة نفسها في الظهور في قائمة الفئات. لإخفائها أيضًا، نحتاج إلى كود إضافي يضمن عدم عرض الفئة في واجهة المستخدم.

لإزالة الفئة من قائمة الفئات، يمكنك استخدام الكود التالي:

add_filter( 'woocommerce_product_subcategories_args', 'exclude_specific_product_category_from_loop' );
function exclude_specific_product_category_from_loop( $args ) {
    if ( !is_user_logged_in() ) {
        $args['exclude'] = array( 48 );
    }
    return $args;
}

هذا الكود سيقوم باستبعاد الفئة ذات الـterm_id 48 من قائمة الفئات المعروضة على الموقع، مما يجذب انتباه المستخدمين المسجلين فقط إلى الفئات الأخرى.

التأكد من استبعاد المنتجات من عمليات البحث

من المهم أيضًا التأكد من أن الفئة والمنتجات الخاصة بها لا تظهر في نتائج البحث. يمكنك تحقيق ذلك بإضافة الكود التالي:

add_filter( 'pre_get_posts', 'exclude_category_from_search' );
function exclude_category_from_search( $query ) {
    if ( !is_user_logged_in() && $query->is_search ) {
        $query->set( 'tax_query', array(
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'term_id',
                'terms'    => array( 48 ),
                'operator' => 'NOT IN',
            ),
        ));
    }
}

بهذا الكود، لن تظهر المنتجات من الفئة المحددة حتى في نتائج البحث بالنسبة للمستخدمين غير المسجلين.

الخلاصة

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

احمد علي

متخصص في مجال تطوير وإدارة المواقع الإلكترونية، يتمتع بخبرة واسعة في التعامل مع منصات إدارة المحتوى، خاصة ووردبريس. يقدم أحمد حلولاً مبتكرة واستراتيجيات فعالة لتحسين أداء المواقع وتطوير تصميماتها بما يتناسب مع احتياجات المستخدمين. كما يتميز بقدرته على تبسيط المفاهيم التقنية وكتابة محتوى تعليمي يساعد الأفراد والشركات على تحسين تواجدهم الرقمي وتحقيق أهدافهم على الإنترنت.
زر الذهاب إلى الأعلى
Don`t copy text!