2017-06-19 18 views
11

वर्डप्रेस Woocommerce में मैंने समूहबद्ध उत्पाद बनाया है, इसमें बहुत से उप उत्पाद (बच्चे) हैं। मैंने हर जगह खोज करने की कोशिश की, लेकिन मुझे एक कामकाजी समाधान नहीं मिल रहा है कि उन्हें एसकेयू या उत्पाद नाम से कैसे ऑर्डर करें। ऐसा लगता है कि ऑर्डरबी केवल "मेनू ऑर्डर" द्वारा उत्पन्न होती है। यद्यपि मेरे पास इन एकाधिक समूहीकृत उत्पादों में 30+ उप उत्पाद हैं, लेकिन मेनू ऑर्डर मूल्य द्वारा उन्हें ऑर्डर करने में बहुत समय लगेगा।फ़िल्टर किए गए उत्पाद बच्चे को ऑर्डर करने का वैकल्पिक तरीका 'woocommerce_grouped_children_args` को हटा दिया गया था WooCommerce 3

मैंने निम्नलिखित कोड की कोशिश की, लेकिन ऐसा लगता है कि यह डब्ल्यूसी 2.5 में काम करता है, लेकिन 3.0+ नहीं।

add_filter('woocommerce_grouped_children_args', 
'so_22661392_grouped_children_args'); 

function so_22661392_grouped_children_args($args){ 

$args['meta_key'] = 'sku'; 
$args['orderby'] = 'meta_value'; 
$args['order'] = 'ASC'; 
return $args; 

} 

मैंने Google को स्पष्टीकरण के लिए भी खोजा लेकिन कोई भी नहीं मिला। मैं यात्रियों को स्पष्ट करने की कोशिश की, इस रूप में अच्छी तरह से काम नहीं करता:

WooCommerce>System Status>Tools>Clear Transients 

वर्गीकृत किया उत्पाद https://plastmet.ee/uus/toode/umartoru-kork-zzo-pealekaiv/ पर देखा जा सकता है। एचटीएमएल टेबल नीचे बच्चों से मेल खाना चाहिए, लेकिन यह नहीं है। बच्चों के लिए एसकेयू "563/9005", "567/9005" आदि है ..

किसी भी मदद की सराहना की जाएगी!

+0

वह फ़िल्टर 3.0 से हटा दिया गया था और दस्तावेज नहीं किया गया था। गिटहब पर एक मुद्दा खोलें। https://github.com/woocommerce/woocommerce/issues – Christina

+0

मैंने कुछ पोस्ट किया है, आपको भी यह करना चाहिए: https://github.com/woocommerce/woocommerce/pull/7021#issuecomment-309538320 नया टिकट खोलें – Christina

+0

जोड़ने का कोई भी तरीका इस ऑर्डरबी कोड को इस बीच फ़िल्टर करें ?? – Masqtto

उत्तर

2

उम्मीद है कि मैं इस समस्या सही ढंग से समझ:

हम टेम्पलेट फ़ाइल single-product/add-to-cart/grouped.php ओवरराइड है, तो हम जैसे इस्तेमाल कर सकते हैं:

if($grouped_products) 
    usort($grouped_products, 'wc_products_array_orderby_title'); 

शीर्षक के आधार पर वर्गीकृत उत्पादों सॉर्ट करने के लिए, के बजाय डिफ़ॉल्ट मेनू ऑर्डरिंग का।

हम भी अपंजीकृत सकता है:

add_action('woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30); 

बजाय एक कस्टम कॉलबैक के साथ।

अंतिम उपाय के रूप में कोई woocommerce_grouped_add_to_cart() फ़ंक्शन ओवरराइड कर सकता है, उदा। मेनू ऑर्डरिंग बदलने के लिए, प्लगइन के भीतर।

यह रूप में परिभाषित किया है:

if (! function_exists('woocommerce_grouped_add_to_cart')) { 

    function woocommerce_grouped_add_to_cart() { 
     global $product; 

     $products = array_filter(array_map('wc_get_product', $product->get_children())); 

     if ($products) { 
      usort($products, 'wc_products_array_orderby_menu_order'); 

     wc_get_template('single-product/add-to-cart/grouped.php', array(
      'grouped_product' => $product, 
      'grouped_products' => $products, 
      'quantites_required' => false, 
     )); 
    } 
    } 
} 

जहां एक जैसे सका इसके बजाय wc_products_array_orderby_title का उपयोग करें।

+0

धन्यवाद। हटाया गया यह फ़िल्टर यहां विस्तृत किया गया है जब इसे WooCommerce में जोड़ा गया था और फिर इसे अनियंत्रित किया गया था और इसे बदलने के तरीके पर कोई झुकाव नहीं था। समूहित उत्पाद उत्पाद एकल पृष्ठ पर बाल उत्पादों के साथ एक मुख्य उत्पाद है। https://github.com/woocommerce/woocommerce/issues/8820 – Christina

+0

मुझे लगता है कि डेवलपर्स के लिए बहिष्करण नोटिस का उपयोग करने का एक उचित तरीका है, उदा। [ 'Apply_filters_deprecated'] (https://developer.wordpress.org/reference/functions/apply_filters_deprecated/)।क्या आप '$ grouped_products' सरणी को ऑर्डर करने के तरीकों की तलाश में हैं? मैंने गतिशील 'woocommerce_product_get_children' फ़िल्टर को देखा (जिसे मैंने 'get_prop()' विधि ;-) के साथ कक्षा में गहराई से देखा है, लेकिन यह केवल '$ grouped_products' के' wc_products_array_orderby_menu_order' ऑर्डरिंग से पहले लागू होता है। @ क्रिस्टीना – birgire

+0

अगर इस पर कोई दस्तावेज नहीं है तो देवों से संपर्क करें। वे एक बहुत ही समय पर जवाब देते हैं। – Shawn

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

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