استبعاد منتجات معينة من ويدجت WooCommerce للمنتجات الحديثة
في بعض الأحيان، يحتاج أصحاب المتاجر الإلكترونية إلى تخصيص عرض المنتجات في واجهات المتاجر الخاصة بهم. ومن بين التحديات التي قد يواجهها المستخدمون هي استبعاد منتجات معينة بناءً على بياناتهم التعريفية. في هذه المقالة، سوف نتناول كيفية استبعاد المنتجات التي تحتوي على بيانات تعريفية معينة من أداة عرض المنتجات حديثة الإضافة في WooCommerce، مع التركيز على الميتا كود الذي يستخدم لتحديد فئة عمرك.
ما هو WooCommerce ومميزاته
WooCommerce هو أحد أكثر أنظمة إدارة المحتوى شيوعًا لإنشاء متاجر إلكترونية على منصة WordPress. يوفر WooCommerce مجموعة متنوعة من المميزات التي تسمح للمستخدمين بتخصيص تجربتهم في البيع والشراء. ومع ذلك، قد يحتاج البعض إلى تكوينات إضافية لاستبعاد منتجات معينة من الظهور في قسم "المنتجات الحديثة".
تحديات استبعاد المنتجات
عندما يتعلق الأمر بـ exclude products with specific metadata from WooCommerce recent products widget، يواجه البعض مشكلة عندما يستخدِمون أحد المفاتيح الميتا مثل "_age_limit". على سبيل المثال، إذا كنت ترغب في استبعاد المنتجات التي تحتوي على قيمة معينة، مثل "大人向け" (مخصص للبالغين)، قد تواجه صعوبة في جعل الكود الخاص بك يعمل بشكل صحيح.
تجربة شخصية مع الكود
لقد قام أحد المستخدمين بإضافة كود إلى ملف functions.php الخاص بقالب موقعه لإجراء استبعاد لهذا النوع من المنتجات. الكود الذي تم استخدامه هو:
add_filter('woocommerce_shortcode_products_query', 'exclude_adult_products_from_recent_products', 10, 3);
function exclude_adult_products_from_recent_products($query_args, $atts, $loop_name){
if( $loop_name == 'recent_products' ){
$query_args['meta_query'][] = array(
'key' => '_age_limit',
'value' => '大人向け',
'compare' => '!=',
);
}
return $query_args;
}
عندما تم استخدام هذا الكود، كان الهدف هو استبعاد المنتجات التي تحمل قيمة ميتا معينة من عرض المنتجات الحديثة، لكنها لم تنجح كما هو متوقع.
تحليل المشكلة
عند دراسة الكود، يبدو أن المشكلة قد تكون في كيفية معالجة طلبات الاستعلام في WooCommerce. حيث يجب أن تتأكد من أن الكود يلتقط المتغيرات بشكل صحيح ومن المعالج المخصص لعرض المنتجات الحديثة.
استخدام هوك آخر
جرب المستخدم استخدام هوك آخر، مثل "woocommerce_products_widget_query_args"، لينجح في استبعاد المنتجات البالغة من الظهور على الصفحة الرئيسية. الكود الذي تم استخدامه في هذه الحالة هو:
function exclude_adult_products_from_newest_widget($query_args) {
if (is_front_page()) {
$meta_query = isset($query_args['meta_query']) ? $query_args['meta_query'] : array();
$query_args['meta_query'][]= array(
'key' => '_age_limit',
'value' => '大人向け',
'compare' => '!='
);
}
return $query_args;
}
add_filter('woocommerce_products_widget_query_args', 'exclude_adult_products_from_newest_widget');
ومع ذلك، لم تكن النتيجة كما كان مأمولاً، حتى بعد مسح ذاكرة التخزين المؤقت للمتصفح.
نصائح لإصلاح المشكلة
إذا كنت تواجه نفس المشكلة مع الكود الخاص بك، إليك بعض النصائح التي قد تساعدك:
-
التأكد من صلاحيات القالب: تحقق مما إذا كان القالب الذي تستخدمه يدعم التعديلات الخاصة بك.
-
تنظيف البيانات المؤقتة: احرص على مسح ذاكرة التخزين المؤقت المتواجدة على الخادم وفي المتصفح.
-
استخدام أدوات تصحيح الأخطاء: قد يكون من المفيد استخدام أدوات تصحيح الأخطاء لرؤية كيف يتم تنفيذ الكود وبالتالي معرفة أين تكمن المشكلة.
- مراجعة الاستعلامات في قاعدة البيانات: تأكد من أن البيانات قد تم تخزينها بشكل صحيح في قاعدة بيانات WordPress الخاصة بك.
خاتمة
استبعاد المنتجات من هوك العرض في WooCommerce يتطلب تعديلات دقيقة على الكود الخاص بك لضمان الأداء السلس. يمكن أن تساعد هذه العملية في تحسين تجربة المستخدم ومنع عرض المنتجات غير المناسبة. تذكّر دائمًا التحقق من إعدادات القالب ومراقبة التكوينات العامة للتأكد من أن كل شيء يعمل بشكل صحيح. إن كنت تواجه مشاكل في استبعاد المنتجات استنادًا إلى metadata، فكر في المحاولة مجددًا أو استخدم تقنيات تصحيح الأخطاء لمساعدتك في حل المشكلة بشكل فعّال.