2014-11-05 10 views
8

मैं वर्डप्रेस/woocommerce के लिए काफी नया हूं और एक कस्टम प्लगइन बनाने के साथ बस खेलना शुरू कर दिया।Woocommerce - प्लगइन में उत्पाद प्रकार की जांच कैसे करें

अब तक मैंने एपीआई के माध्यम से अपनी कस्टम Woocommerce सेटिंग्स को जोड़ा है।

मैंने एक समस्या में भाग लिया है जहां मैं उत्पाद डेटा टैब में एक उत्पाद पर एक कस्टम फ़ील्ड जोड़ना चाहता हूं।

मैं निम्नलिखित कोड का उपयोग कर इसे प्रदर्शित करने में कामयाब रहे:

add_action('woocommerce_product_options_general_product_data', array($this, 'cuzd_general_fields')); 
add_action('woocommerce_process_product_meta', array($this, 'cuzd_general_fields_save')); 

लेकिन अब मैं अगर उत्पाद प्रकार साधारण या भिन्नता है की जाँच की जरूरत है।

Fatal error: Class 'WC_Product' not found in .... 

मैं एक अच्छा लग रहा है कि मैंने पहले अपनी बुलाया गया उत्पाद वर्ग आरंभ करने के लिए कोशिश कर रहा हूँ है:

$product = new WC_Product(get_the_ID()); 
     if($product->is_type('simple')) { 
      // 
} 

हालांकि मैं कोई त्रुटि मिलती है: मैं निम्नलिखित की कोशिश की। मुझे सबसे अधिक संभावना है कि क्लास प्लगइन का पूरा प्रारूप गलत हो। अच्छी शिक्षा/सर्वोत्तम अभ्यास के साथ कोई भी पढ़ने की सामग्री की सराहना की जाएगी।

अन्यथा अगर उपरोक्त एक साधारण फिक्स है तो कृपया मुझे बताएं।

उत्तर

11

समस्या यह है कि get_the_ID() किसी उत्पाद की आईडी को वापस नहीं कर रहा है।

$product_id = 10; // the ID of the product to check 
$_product = wc_get_product($product_id); 
if($_product->is_type('simple')) { 
// do stuff for simple products 
} else { 
// do stuff for everything else 
} 

तो $product_id विभिन्नता की आईडी तो प्रकार $_product के लिए लौट आए variation होगा।

इसके अतिरिक्त आप global $product देख सकते हैं जो WooCommerce सेट अप करता है। हालांकि यह कभी भी भिन्नता आईडी नहीं होगा और माता-पिता परिवर्तनीय उत्पाद की आईडी होगी।

+0

मेरे लिए कम से कम भिन्नता उत्पाद प्रकार "परिवर्तनीय" है, न कि "भिन्नता"। यह मूल उत्तर के बाद बदल सकता है लेकिन मुझे लगता है कि भविष्य के संदर्भ के लिए यह ध्यान देने योग्य है। – Tuure

+1

@ ट्यूचर वैरिएबल और भिन्नता दोनों मौजूद हैं। उत्पाद प्रकार "चर" का अर्थ है कि यह मूल उत्पाद है जिसमें एकाधिक "विविधता" उत्पाद बच्चे होते हैं। विविधता उत्पाद सूची में अलग-अलग उत्पादों के रूप में दिखाई नहीं देती है लेकिन वास्तव में स्वयं के उत्पाद पद हैं। स्पष्टीकरण के लिए – Berend

+0

धन्यवाद! – Tuure

संबंधित मुद्दे