मैं WooCommerce के लिए [उत्पाद एड-ऑन] [1] एक्सटेंशन का उपयोग कर रहा हूं, जो उत्पादों के लिए कस्टम फ़ील्ड की अनुमति देता है। यह स्वचालित रूप से एकल उत्पाद टेम्पलेट पर प्रदर्शित होता है।WooCommerce: "उत्पाद ऐड-ऑन" एक्सटेंशन से फ़ील्ड कैसे प्रदर्शित करें?
कुछ उत्पाद टेम्पलेट के साथ कुछ परीक्षण और त्रुटि से, यह woocommerce_single_product_summary
(single_meta?) में कहीं भी हुक प्रतीत होता है।
मुझे archive-product
टेम्पलेट (उत्पादों की सूची) पर प्रदर्शित करने के लिए फॉर्म फ़ील्ड का एक ही सेट प्राप्त करने की आवश्यकता है। मेरे मामले में, यह कार्ड अनुरोध के लिए एक क्षेत्र है और एक डिलीवरी तिथि के लिए है। उत्पाद संग्रह से कार्ट में उत्पाद को जोड़ा जा सकता है इससे पहले दोनों की आवश्यकता होती है। मुझे यकीन नहीं है कि कोई फ़ंक्शन है जिसके लिए मैं कॉल कर सकता हूं, अगर इसमें कुछ और उन्नत कोडिंग शामिल है।
प्रति Pelmered का जवाब, मैं functions.php को यह जोड़ने के साथ दिखाने के लिए ऐड-ऑन क्षेत्रों प्राप्त करने में सक्षम था:
फिर
add_action('woocommerce_after_shop_loop_item_title', array($GLOBALS['Product_Addon_Display'], 'display'), 10);
1 ली प्रयास करते हैं, समस्या यह थी कि उत्पाद संग्रह एक फॉर्म तत्व नहीं बना रहा था, केवल कार्ट बटन में जोड़ने के लिए एक एंकर लिंक था। इसलिए मैंने मैन्युअल रूप से एक फॉर्म डालने का प्रयास किया है। content-product.php
से कोड:
<?php do_action('woocommerce_before_shop_loop_item'); ?>
<h2><?php the_title(); ?></h2>
<?php // MANUALLY PUT IN FORM, BECAUSE HOOKS ONLY PUT IN A BUTTON AND NO FORM. NEEDED FOR ADD-ON FIELDS ?>
<form class="cart" method="post" enctype='multipart/form-data'>
<?php
/**
* woocommerce_after_shop_loop_item_title hook
*
* @hooked woocommerce_template_loop_rating - 5
* @hooked woocommerce_template_loop_price - 10
*/
do_action('woocommerce_after_shop_loop_item_title');
?>
<div itemprop="description">
<?php the_content(); ?>
</div>
<input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>" />
<button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button>
</form>
<?php //do_action('woocommerce_after_shop_loop_item'); ?>
यह काम किया, लेकिन एक तरह से AJAX के प्रस्तुत करने और फ्लैश संदेशों को खराब करता। कार्ट बटन में जोड़ने पर क्लिक करने के बाद, पृष्ठ रीफ्रेश करने लगता है, और फिर ऐसा लगता है कि कुछ भी नहीं हुआ। लेकिन जब आप किसी अन्य पृष्ठ पर जाते हैं, तो यह संदेश प्रदर्शित करता है (और एकाधिक स्टैक कर सकते हैं)।
2ND प्रयास
तो मैंने देखा कि मूल AJAX गाड़ी बटन (एक फार्म के भीतर नहीं) एक क्वेरी स्ट्रिंग उपयोग कर रहा था उत्पाद ID भेजने के लिए। तो अब मैं कार्ट जेएस में जोड़ने को संशोधित करके अतिरिक्त पैरामीटर पर काम करने का प्रयास कर रहा हूं। यह काम किया। मैंने स्वीकृत उत्तर के रूप में क्या जोड़ा।
WooCommerce समर्थन से प्रतिक्रिया थी "इस अनुकूलन हमारे समर्थन पॉलिसी के तहत कवर नहीं है"। वास्तव में इसके लिए एक समाधान की जरूरत है। – jwinn