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']);
        }
    }

כל התקלות הידועות →