ওওকমার্সে পণ্যটি কোনও একক-পণ্য.এফপিতে নির্দিষ্ট বিভাগে রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


25

একক-পণ্য.পিপিতে কোনও পণ্য নির্দিষ্ট পণ্য বিভাগে আছে কিনা তা বিশ্বে আমি কীভাবে পরীক্ষা করতে পারি ?

<?php if (is_product_category('audio')) {
           echo 'In audio';
               woocommerce_get_template_part( 'content', 'single-product' );

      } elseif (is_product_category('elektro')) {

            echo 'In elektro';
            woocommerce_get_template_part( 'content', 'single-product' );
         } else {
            echo 'some blabla'; }  ?>

is_product_category ('স্লাগ') এর একক- পণ্য.এফপি তে কোনও প্রভাব নেই । আমি উপরের শর্তে থাকতে চাই। একক-পণ্য পৃষ্ঠায় এর জন্য কোনও সমাধান?


আপনার প্রথম বিবৃতিতে কোনও ক্লোজিং অনুপস্থিত বলে মনে হতে পারে )? এটি হওয়া উচিতif (is_product_category('audio'))
স্টিলথিনিঞ্জ

ভাল ধরা, কিন্তু এটি না। is_pr Prodct_category একক-পণ্য.php এ কাজ করছে বলে মনে হচ্ছে না
অ্যালেক্স

উত্তর:


28

আমি মনে করি get_categories()না এই ক্ষেত্রে আপনার জন্য সেরা বিকল্প কারণ এটি অ্যাঙ্কর ট্যাগ হিসাবে তালিকাভুক্ত সমস্ত বিভাগের সাথে একটি স্ট্রিং প্রদান করে, প্রদর্শন করার জন্য জরিমানা, তবে বিভাগগুলি কী কী তা কোডে বের করার জন্য দুর্দান্ত নয়। ঠিক আছে, সুতরাং আপনার প্রথম কাজটি করা দরকার বর্তমান পণ্যটির জন্য পণ্য / পোস্ট অবজেক্টটি যদি আপনার কাছে ইতিমধ্যে না থাকে:

global $post;

তারপরে আপনি পণ্যটির জন্য পণ্য বিভাগের মেয়াদী অবজেক্ট (বিভাগগুলি) পেতে পারেন। এখানে আমি বিভাগের পদার্থের অবজেক্টগুলিকে একটি সাধারণ অ্যারে হিসাবে নামিয়েছি $categoriesযাতে স্লাগগুলি কী বরাদ্দ করা হয় তা আরও সহজ। নোট করুন যে এটি কেবলমাত্র বর্তমান পৃষ্ঠার এক নয়, যেমন পণ্যটিতে নির্ধারিত সমস্ত বিভাগ ফিরিয়ে দেবে/shop/audio/funzo/ :

$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;

তারপরে আমাদের কেবল তালিকাটি বিভাগে আছে কিনা তা পরীক্ষা করে দেখতে হবে:

if ( in_array( 'audio', $categories ) ) {  // do something

সবগুলোকে একত্রে রাখ:

<?php
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;

if ( in_array( 'audio', $categories ) ) {
  echo 'In audio';
  woocommerce_get_template_part( 'content', 'single-product' );
} elseif ( in_array( 'elektro', $categories ) ) {
  echo 'In elektro';
  woocommerce_get_template_part( 'content', 'single-product' );
} else {
  echo 'some blabla';
}

আশা করি আপনি এটিই খুঁজছিলেন এবং আপনার প্রশ্নের উত্তর দিয়েছেন।


37

has_term এই ক্ষেত্রে কাজ করা উচিত:

if ( has_term( 'audio', 'product_cat' ) ) {

       echo 'In audio';
       woocommerce_get_template_part( 'content', 'single-product' );

} elseif ( has_term( 'elektro', 'product_cat' ) ) {

       echo 'In elektro';
       woocommerce_get_template_part( 'content', 'single-product' );

} else {
       echo 'some blabla';
}

এটি করার জন্য দুর্দান্ত সহজ এবং কার্যকর উপায়। আমি মনে করি এটি ভাল উত্তর।
ট্রেভর

আমি এটি পছন্দ করেছি কারণ এটি সংক্ষিপ্ত ছিল। যাইহোক আমি করেছিif { thing; return;}
ইয়োন

8

এটি লক্ষণীয় যে আপনি প্রচুর অন্য চেকের সাথে আপনার কোডটি বিশৃঙ্খলা না করে অ্যারে কল করে বিকল্পগুলির একটি তালিকা মাধ্যমে যেতে পারেন, ধরে নিচ্ছেন যে প্রতিটি বিভাগের সাথে আপনি একই জিনিসটি করতে চান।

if( has_term( array( 'laptop', 'fridge', 'hats', 'magic wand' ), 'product_cat' ) ) :

// Do stuff here

else :

// Do some other stuff

endif;

আমি মনে করি এই উত্তরটি মিলোর উত্তরে সম্পাদনা হিসাবে যুক্ত করা উচিত।
সাইবমেটা

4

এটি পুরানো তবে ঠিক যদি লোকেরা এখনও ওউমিমাইমকে একটি সহজ সমাধান হিসাবে দেখছে:

if ( is_product() && has_term( 'your_category', 'product_cat' ) ) {
    //do code
}

* আপনি যা ব্যবহার করছেন তা 'আপনার_শ্রেণী' পরিবর্তন করুন।

ডকুমেন্টেশনের লিঙ্কটি এখানে: https://docs.woothemes.com/docament/remov-product-content-based-on-category/


0

আমি get_categories()ডাব্লুসিপি প্রোডাক্ট ক্লাসের ফাংশনটি ব্যবহার করে দেখব।

আপনি এখানে ডকুমেন্টেশনের লিঙ্কটি খুঁজে পেতে পারেন ।

মূলত পৃষ্ঠার লুপের মধ্যে পণ্যের সাথে সম্পর্কিত বিভাগগুলি ফিরিয়ে আনতে ফাংশনটি কল করুন।


আমি এটি কোড করতে সক্ষম নই। কীভাবে এটি কাজ করতে হয় তা সম্পর্কে আমার কোনও ক্লু নেই। কেউ দয়া করে এটি বর্ণনা করুন। আমি আমার যথাসাধ্য চেষ্টা করেছি আমি কি এইটিকে get_ বিভাগ () দিয়ে প্রতিস্থাপন করব?
অ্যালেক্স

আপনি যদি পণ্য বিভাগের পৃষ্ঠায় থাকেন তবে @ অ্যালেক্স দ্য ইস_প্রডাক্ট_ ক্যাটাগরি () ফাংশনটি সত্য দেয়। পণ্যের বিভাগ নয়। আমি এখনই একটি প্রকল্পে মাথা নিচ্ছি, তবে আমি আপনাকে পরে একটি কোড স্নিপেট দেওয়ার চেষ্টা করব।
স্টিভ

ধন্যবাদ, এই ছোট্ট স্নিপেটকে কোড দেওয়ার জন্য স্টিভেন। খুব প্রশংসা করুন।
অ্যালেক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.