मूल्य के आधार पर विकल्प का चयन करते समय (वूकॉमर्स ड्रॉपडाउन) उत्पादों को मूल्य में क्रमबद्ध करने के लिए लेकिन यह ठीक से काम नहीं कर रहा है; पहले 6 क्रमबद्ध हैं:

  • € 1,50
  • € 11,75
  • € 1,75
  • € 1,75
  • € 2,95
  • € 4,50

अधूरी वेबसाइट का लिंक: http://verduijncichlids.com/product-categorie /vissen-voorraad/west-afrika-cichliden/?orderby=price

क्या किसी को पता है कि क्या हो रहा है और इसे कैसे ठीक किया जाए? चीयर्स!

2
Hassan 1 नवम्बर 2017, 17:06

5 जवाब

सबसे बढ़िया उत्तर

जब आप संख्यात्मक मेटा डेटा द्वारा ऑर्डर करते हैं तो आपको meta_value_num का उपयोग करने की आवश्यकता होती है, अन्यथा इसकी तुलना स्ट्रिंग्स के रूप में की जाएगी अन्यथा क्योंकि पोस्ट मेटा मान डेटाबेस में स्ट्रिंग्स के रूप में संग्रहीत होते हैं।

$args = array(
    'meta_key' => 'price',
    'orderby' => 'meta_value_num',
    'order' => 'ASC'
);
$query = new WP_Query( $args );
1
Pelmered 1 नवम्बर 2017, 17:35

ऐसा लगता है कि ठीक हो जाता है। चुनिंदा उत्पादों को देखें, क्योंकि उनकी प्राथमिकता है।

0
interlaw 1 नवम्बर 2017, 17:34

किसी के लिए भी जो इस समस्या का सामना कर सकता है

के अनुसार: https://woocommerce.wordpress.com/2019/ 04/01/प्रदर्शन-सुधार-में-3-6/

यदि आपने अपने उत्पादों को "WP सभी आयात" जैसे उपकरणों के साथ आयात किया है, तो आपको "उत्पाद लुकअप टेबल" को पुन: उत्पन्न करना होगा:

WooCommerce > स्थिति > उपकरण > उत्पाद लुकअप टेबल

17
Abolfazl Sharifi 30 जून 2019, 10:07

आपको अपने Woocommerce प्लगइन को नवीनतम संस्करण में अपडेट करना चाहिए। यह प्लगइन में एक बग था या आपने शायद मुख्य कार्यों में कुछ बदल दिया था।

अपडेट ने मुझे इस और कई अन्य मुद्दों के साथ अच्छी तरह से मदद की।

0
PapaSoft 4 मार्च 2019, 20:21

यदि WooCommerce में कीमत के आधार पर ऑर्डर करना सही तरीके से काम नहीं कर रहा है, तो एक सुरक्षित समाधान हमेशा यह अनुकूलित करने के लिए होता है कि WooCommerce कीमत के हिसाब से ऑर्डर को कैसे संभालता है। यह काम करता है क्योंकि WooCommerce price और price-desc डिफ़ॉल्ट ऑर्डरिंग विकल्प हैं। (वर्डप्रेस v5.4.1 और WooCommerce v4.1.0 में मानक विषय के साथ परीक्षण किया गया):

अपने functions.php में जोड़ें:

/**
 * Customize ordering by price
 */
add_filter('woocommerce_get_catalog_ordering_args', function ($args) {
    $orderby_value = isset($_GET['orderby']) ? wc_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby'));

    if ('price' == $orderby_value) {
        $args['orderby'] = 'meta_value_num';
        $args['order'] = 'ASC';
        $args['meta_key'] = '_price';
    }

    if ('price-desc' == $orderby_value) {
        $args['orderby'] = 'meta_value_num';
        $args['order'] = 'DESC';
        $args['meta_key'] = '_price';
    }

    return $args;
});

जैसे @Pelmered ने उल्लेख किया है कि meta_value_num को 'order_by' विकल्प के रूप में उपयोग करना महत्वपूर्ण है, इसलिए क्रम संख्या मानों द्वारा किया जाता है न कि स्ट्रिंग मानों द्वारा। हालांकि, मैंने meta_key को '_price' में बदल दिया, क्योंकि WooCommerce संस्करण में इसकी आवश्यकता है और इसका उल्लेख ऊपर किया गया है।

आगे की पढाई:

वर्डप्रेस दस्तावेज़ीकरण WP_Query

WooCommerce दस्तावेज़ीकरण कस्टम छँटाई विकल्प

3
Jannick 15 मई 2020, 13:22