WooCommerce: تحقق مما إذا كانت المنتجات تنتمي إلى الفئة / العلامة

A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

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

من المهم أن تعرف أن المنتج يمكن أن يكون داخل “الحلقة” (على سبيل المثال ، صفحة المتجر أو قائمة المنتجات) ، أو يمكنك بدلاً من ذلك أن تكون على صفحة منتج واحد أو لديك معرّف فريد للمنتج ، أو حتى يمكنك التحقق مما إذا كان المنتج الفئة داخل السلة . أخيرًا ، يمكنك حتى تشغيل فحص فئة المنتج داخل طلب أو بريد إلكتروني للطلب.

في كلتا الحالتين ، تكون الوظيفة هي نفسها دائمًا. تحتاج ببساطة إلى فهم كيفية استخدامه. يتمتع!

تعرف على وظيفة has_term () وورد بريس

يأتي وورد بريس للإنقاذ باستخدام وظيفة has_term () ، والتي تقبل 3 معلمات:

المصطلح (فئة ، علامة تبويب ، مصطلح مخصص) الاسم ، معرف المصطلح ، سبيكة أو صفيف منها

اسم التصنيف (افتراضي أو مخصص)

معرّف المنشور أو كائن المنشور ، في حالة عدم رغبتك في استخدام “المنشور الحالي”

تسير الأمور بشكل أساسي على النحو التالي: أنت تحدد مصطلحًا تريد التحقق منه مقابل كائن المنشور ، مثل “Rock” ، وتحدد اسم التصنيف الافتراضي أو المخصص (في مثال Jazz ، قد تكون تستخدم تصنيفًا مخصصًا لـ “Music”) وأخيرًا يمكنك تحديد معرّف المشاركة:

if ( has_term( 'rock', 'music', 26 ) ) {
    // do something if post 26 belongs to Rock Music
}

سهل جدا. حان الوقت الآن لتطبيق هذا على WooCommerce ومعرفة أين يمكن أن يكون مفيدًا. يأتي WooCommerce بالفعل مع تصنيفات مخصصة: ” product_cat ” لفئات المنتجات و ” product_tag ” لعلامات المنتج. هذا كل ما نحتاج إلى استخدامه.

WooCommerce: تحقق مما إذا كان المنتج الحالي ينتمي إلى فئة المنتج @ صفحة منتج واحدة

هذا هو السيناريو الأسهل. أنت تقوم بتخصيص صفحة منتج واحد وتريد إظهار شعار معين في حالة انتماء المنتج الحالي إلى فئة معينة .

الشيء الجيد هو أننا في صفحة منتج واحد ، وبالتالي فإننا نعلم أن ” المنشور الحالي” موجود ولا نحتاج إلى معلمة has_term () الثالثة .

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

add_action( 'woocommerce_before_single_product', 'bbloomer_print_banner_if_product_belongs_to_category_tables' );
 
function bbloomer_print_banner_if_product_belongs_to_category_tables() {
   if ( has_term( 'tables', 'product_cat' ) ) {
      echo '<img src="banner.png">';
   }
}

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

WooCommerce: تحقق مما إذا كان المنتج الحالي ينتمي إلى علامة المنتج @ صفحة منتج واحد

وبالمثل ، يمكنك التحقق من المنتج الحالي مقابل علامة product_tag معينة:

add_action( 'woocommerce_before_single_product', 'bbloomer_print_banner_if_product_belongs_to_tag_red' );
 
function bbloomer_print_banner_if_product_belongs_to_tag_red() {
   if ( has_term( 'red', 'product_tag' ) ) {
      echo '<img src="banner2.png">';
   }
}

WooCommerce: تحقق مما إذا كان المنتج الحالي ينتمي إلى فئة المنتج @ Shop Page

دعونا نعقد الأمور.

نحن الآن في صفحة المتجر ، أو في قسم قائمة المنتجات التي تم إنشاؤها بواسطة رمز قصير. هذا يسمى “الحلقة”. في هذه الحالة ، لديك العديد من المنتجات في نفس الصفحة ، لذلك لا يمكننا استخدام نفس الطريقة الموضحة أعلاه لأن “المنشور الحالي” لن يكون معرّف منتج – بدلاً من ذلك سيكون معرف الصفحة الحالية.

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

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

كما ترى داخل المقتطف ، أحتاج أولاً إلى معرفة “معرّف المنتج الحلقي” لأن هذا يحتاج إلى تشغيل لكل منتج في الحلقة ، وبعد ذلك يمكنني العودة باستخدام has_term () الشرطي:

add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_print_message_if_product_belongs_to_category_chairs' );
 
function bbloomer_print_message_if_product_belongs_to_category_chairs() {
   global $product;
   $product_id = $product->get_id();
   if ( has_term( 'chairs', 'product_cat', $product_id ) ) {
      echo 'A message about chairs';
   }
}

WooCommerce: تحقق مما إذا كان المنتج الحالي ينتمي إلى علامة المنتج @ Shop Page

لا تعليق.

add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_print_message_if_product_belongs_to_tag_yellow' );
 
function bbloomer_print_message_if_product_belongs_to_tag_yellow() {
   global $product;
   $product_id = $product->get_id();
   if ( has_term( 'yellow', 'product_tag', $product_id ) ) {
      echo 'A message about yellow products';
   }
}

WooCommerce: تحقق مما إذا كان معرف المنتج ينتمي إلى فئة المنتج

لنفترض أنك خارج الحلقة ولست في صفحة منتج واحد. هذا يعني أنه ليس لديك “منتج حالي” للتعامل معه ، ولا يوجد منتج $ عالمي يمكنك الاتصال به ، وأنت عالق.

لحسن الحظ ، تقبل وظيفة has_term () معرف المنشور كمعامل ثالث حتى تتمكن من تشغيل الفحص الشرطي حتى على الصفحة الرئيسية ، داخل رمز قصير ، داخل بريد إلكتروني لطلب WooCommerce ، وما إلى ذلك.

ما عليك سوى تحديد المعرف الذي تريده.

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

add_action( 'wp_footer', 'bbloomer_print_message_if_product_ID_belongs_to_category_lamps' );
 
function bbloomer_print_message_if_product_ID_belongs_to_category_lamps() {
   if ( has_term( 'lamps', 'product_cat', 59 ) ) {
      echo '<p>Product ID 59 belongs to Lamps</p>';   
   }
}

المنشورات ذات الصلة:

WooCommerce: إخفاء السعر وإضافته إلى عربة التسوق للمستخدمين الذين قاموا بتسجيل الخروج

WooCommerce: إزالة أو إعادة تسمية SALE! شارة

WooCommerce: إزالة إضافة عربة التسوق ، إضافة عرض صفحة المنتج @ المتجر

WooCommerce: تحقق مما إذا كان المستخدم قد اشترى المنتج

WooCommerce: أعد تسمية زر “إضافة إلى عربة التسوق” إذا كان المنتج بالفعل @ سلة التسوق

WooCommerce: إخفاء إضافة إلى عربة التسوق إذا تم شراؤها بالفعل

WooCommerce: كيفية تقصير عناوين المنتج

WooCommerce: إزالة / تحرير رسالة “تمت الإضافة إلى عربة التسوق”

WooCommerce: عرض حالة المخزون / الكمية في صفحة المتجر

WooCommerce: أضف رمزًا إلى أزرار إضافة إلى عربة التسوق

أين تضيف هذا المقتطف؟

يمكنك وضع مقتطفات PHP في الجزء السفلي من ملف function.php القالب الفرعي الخاص بك (احذف “؟>” إذا كان لديك هناك). من ناحية أخرى ، ينتقل CSS في ملف style.css الخاص بسمة الطفل. تأكد من أنك تعرف ما تفعله عند تحرير مثل هذه الملفات – إذا كنت بحاجة إلى مزيد من الإرشادات ، فيرجى إلقاء نظرة على الفيديو التعليمي المجاني الخاص بي “أين تضع تخصيص WooCommerce؟”

هل هذا المقتطف (لا يزال) يعمل؟

يرجى إعلامي في التعليقات إذا كان كل شيء يعمل كما هو متوقع. يسعدني مراجعة المقتطف إذا أبلغت بخلاف ذلك (يرجى تقديم لقطات شاشة). لقد اختبرت هذا الكود مع موضوع Storefront وإصدار WooCommerce المذكور أعلاه واستضافة صديقة لـ وورد بريس على PHP 7.3.

إذا كنت تعتقد أن هذا الرمز وفر لك الوقت والمال ، فلا تتردد في الانضمام إلى أكثر من 14000 مشترك في WooCommerce Weekly للحصول على تحديثات منشورات المدونة أو أكثر من 250 من مؤيدي Business Bloomer لمدة 365 يومًا من مزايا WooCommerce . شكرا لكم مقدما 🙂

هل تحتاج إلى مساعدة في WooCommerce؟

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

توضيح

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

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

شاركنا رايك وتقييمك للموضوع

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}