WPML

Обзор проблемы

В теме оформления WPRentals theme, когда пользователи переключают язык на своем сайте, счета могут отображаться некорректно на всех языках.

Обходное решение

Эта проблема решена. Обновление до последней версии решает эту проблему на Вашем сайте, поэтому это обходное решение потребуется Вам только в том случае, если Вы пока не можете выполнить обновление.

Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.

  • Откройте файл …/wp-content/themes/wprentals/user_dashboard_invoices.php.
  • Найдите строку 48.
  • Замените:
    <?php
        $args = array(
            'post_type' => 'wpestate_invoice',
            'post_status'      => 'publish',
            'posts_per_page'   => -1 ,
            'author'           => $userID,
            'meta_query'       => array(
                    array(
                        'key'       => 'invoice_type',
                        'value'     =>  esc_html__( 'Reservation fee','wprentals'),
                        'type'      =>  'char',
                        'compare'   =>  'LIKE'
                        )
            ),
        );
    
    
    
        $prop_selection = new WP_Query($args);
  • На:
    <?php
        /*
        * >> WPML Workaround for compsupp-7254
        */
    
        // Original meta query
        $meta_query_value = esc_html__( 'Reservation fee','wprentals');
        $meta_query_compare = 'LIKE';
    
        // Modify meta_query if WPML is enabled
        if ( class_exists ('Sitepress') ) {
    
            $meta_query_value = [];
            $meta_query_value[] = esc_html__( 'Reservation fee','wprentals');
    
            $wpml_current_language = apply_filters( 'wpml_current_language', NULL );
            $wpml_languages = apply_filters( 'wpml_active_languages', NULL, 'orderby=id&order=desc' );
    
            if ( ! empty( $wpml_languages ) ) {
    
                foreach( $wpml_languages as $language ) {
                    // wpml_translate_single_string filter is not working because this string does not have a registered name
                    // Because of that, we will need to switch languages (then restore it later)
                    do_action( 'wpml_switch_language', $language['language_code'] );
                    $translated_string = esc_html__( 'Reservation fee','wprentals');
    
                    if ( ! in_array($translated_string, $meta_query_value) ) {
                        $meta_query_value[] = $translated_string;
                    }  
                }
    
                // Restore original language
                do_action( 'wpml_switch_language', $wpml_current_language );
            }
    
            $meta_query_compare = 'IN';
        }
    
        $args = array(
            'post_type'        => 'wpestate_invoice',
            'post_status'      => 'publish',
            'posts_per_page'   => -1 ,
            'author'           => $userID,
            'meta_query'       => array(
                array(
                    'key'       => 'invoice_type',
                    'value'     =>  $meta_query_value,
                    'type'      =>  'char',
                    'compare'   =>  $meta_query_compare,
                )
            ),
        );
    
        $prop_selection = new WP_Query($args);

Все известные проблемы

Всё ещё сталкиваетесь с этой проблемой?

Если обновление не устраняет проблему, отправьте запрос в поддержку, и мы разберемся в ней вместе с Вами.