WPML
الحالة
محلولة
أُبلغ عنها لـ
WPML Multilingual & Multicurrency for WooCommerce 4.11.6
تم حلها في
4.12.0

نظرة عامة على المشكلة

توفر لك WooCommerce ودجت تصفية حسب السعر تتيح لمستخدميك تصفية منتجاتك بسهولة.

حالياً، إذا كنت تستخدم ميزة تعدد العملات الخاصة بنا، فستلاحظ أنه في العملات الثانوية، تُعرض قيم الحد الأدنى والحد الأقصى بشكل صحيح، ومع ذلك، يستخدم المرشِّح الأسعار من اللغة الافتراضية. مما يؤدي إلى عرض نتائج خاطئة.

حل بديل مؤقت

قبل المتابعة، أنشئ نسخة احتياطية كاملة لموقعك. ثم:


  1. افتح مجلد WooCommerce Multilingual.

  2. ابحث عن ملف /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.

  3. انتقل إلى السطر 620.

  4. غيّر:
    $args['where'] = str_replace( $wpdb->prepare( 'wc_product_meta_lookup.min_price >= %f', $min_price ), $wpdb->prepare( 'wc_product_meta_lookup.min_price >= %f', $min_price_in_default_currency ), $args['where'] );
    $args['where'] = str_replace( $wpdb->prepare( 'wc_product_meta_lookup.max_price <= %f', $max_price ), $wpdb->prepare( 'wc_product_meta_lookup.max_price <= %f', $max_price_in_default_currency ), $args['where'] );

    إلى:

    $args['where'] = str_replace( $wpdb->prepare( '%f<wc_product_meta_lookup.min_price', $max_price ), $wpdb->prepare( '%f<wc_product_meta_lookup.min_price', $max_price_in_default_currency ), $args['where'] );
    $args['where'] = str_replace( $wpdb->prepare( '%f>wc_product_meta_lookup.max_price', $min_price ), $wpdb->prepare( '%f>wc_product_meta_lookup.max_price', $min_price_in_default_currency ), $args['where'] );

جميع المشاكل المعروفة →