WPML
الحالة
محلولة
أُبلغ عنها لـ
WPML Multilingual CMS 4.6.13
تم حلها في
WPML Multilingual CMS 4.7.4
الإضافة/القالب ذو الصلة
Elementor
وسوم الموضوع
Compatibility

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

عند استخدام ميزة شروط العرض الخاصة بـ Elementor Pro للتحكم في ظهور الودجت، لا تُطبَّق الشروط بشكل صحيح على الصفحات المترجمة. وتحديداً، لا تُفعِّل الوسوم أو التصنيفات في اللغة المترجمة شروط العرض كما هو متوقع، مما يتسبب في بقاء العناصر التي يجب أن تكون مخفية ظاهرة.

حل بديل مؤقت

يرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.


  • افتح ملف functions.php الخاص بقالبك.

  • أضف المقتطف التالي:
    /*
    * WPML Workaround for compsupp-7656
    */
    add_filter( 'elementor/frontend/before_render', 'wpml_compsupp7656_filter_e_display_conditions_from_widget');
    
    function wpml_compsupp7656_filter_e_display_conditions_from_widget($element) {
        $settings = $element->get_settings();
    
        if (array_key_exists('e_display_conditions', $settings) && !empty($settings['e_display_conditions'])) {
            foreach ($settings['e_display_conditions'] as $key => $condition_json) {
                $condition = json_decode($condition_json, true);
                
                foreach ($condition as &$condition_group) {
                    foreach ($condition_group as &$single_condition) {    
                        if (isset($single_condition['condition']) && strpos($single_condition['condition'], 'in_') === 0) {
                            $taxonomy_key = substr($single_condition['condition'], 3); // Remove 'in_' prefix
                            if (isset($single_condition[$taxonomy_key])) {
                                foreach ($single_condition[$taxonomy_key] as &$term) {
                                    if (isset($term['id'])) {
                                        $term_obj = get_term($term['id']);
                                        if ($term_obj && !is_wp_error($term_obj)) {
                                            $term['id'] = apply_filters('wpml_object_id', $term['id'], $term_obj->taxonomy, true);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
    
                // Encode the modified condition back to JSON
                $settings['e_display_conditions'][$key] = json_encode($condition);
            }
    
            // Update the element's settings with the modified conditions
            $element->set_settings('e_display_conditions', $settings['e_display_conditions']);
        }
    }

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