2014-09-06 8 views
5

मैंने woocommerce चेकआउट पृष्ठ पर नया कस्टम शिपिंग फ़ील्ड (विकल्प का चयन करें) जोड़ा है।woocommerce में कस्टम शिपिंग फ़ील्ड के परिवर्तन पर शिपिंग गणना कैसे अपडेट करें?

मैं शिपिंग गणना के लिए इसका उपयोग कर रहा हूं।

जो भी सही काम करता है। लेकिन मुद्दा यह है कि जब मैं उस क्षेत्र में मूल्य बदलता हूं तो यह तुरंत अपडेट नहीं होता है।

यह पृष्ठ सबमिट करने के बाद, अगले पृष्ठ पर सही गणना देता है। मुझे कस्टम फ़ील्ड में बदलाव के रूप में काम करने की आवश्यकता है।

WooCommerce अजाक्स को कैसे ट्रिगर करें जो मेरे कस्टम फ़ील्ड के परिवर्तन पर शिपिंग गणना अपडेट करता है?

उत्तर

9

यदि आप अपने क्षेत्र को सही तरीके से जोड़ रहे हैं (woocommerce_checkout_fields फ़िल्टर का उपयोग करके) यह वास्तव में बेहद आसान है। केवल एक चीज आपको बस इतना करना कक्षाएं address-field और update_totals_on_change इस तरह जोड़ने के लिए है:

add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

function custom_override_checkout_fields($fields) { 

    $fields['shipping']['custom_field'] = array(
     'label' => 'Custom field', 
     'required' => 1, 
     'class' => array ('address-field', 'update_totals_on_change') 
    ); 

    return $fields; 
} 
+2

अत्यंत उपयोगी ... धन्यवाद एक हजारों बार .. – erandi

+0

हाय, मैं कंसोल में देख सकते हैं, के लिए कस्टम की जाँच फ़ील्ड जो हम जोड़ते हैं, 'update_totals_on_change' कक्षा .... यह 'woocommerce-checkout-review-order-table' को कॉल कर रहा है लेकिन यह 'गणना_shipping' फ़ंक्शन नहीं है? क्या कोई इस माटर पर मदद कर सकता है? – erandi

+0

यह मेरे लिए काम नहीं कर रहा था। मैंने आपका कोड बिल्कुल ठीक किया है, लेकिन फ़ील्ड मान बदलते समय कार्ट रीफ्रेश नहीं हुआ और फोकस फ़ील्ड से दूर चले गए। –

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