WPML
Статус
Открыто
Связанный плагин/тема
RSVP Pro
Теги темы
Compatibility

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

Если Вы используете плагин RSVP Pro, Вы можете столкнуться с проблемой, когда некоторые строки не отображаются переведенными на фронтенде при использовании WPML. Эта проблема обычно возникает из-за того, что уникальный ключ строки превышает лимит символов, установленный системой, что приводит к несовпадению ключей и непереведенным строкам.

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

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


  • Откройте файл app/public/wp-content/plugins/rsvp-pro-plugin/includes/rsvp-utils.inc.php

  • Найдите строку 1069.

  • Замените:
    function rsvp_pro_get_dynamic_translated_string( $key_name, $string, $event_id ) {
    	$text = $string;
    
    	if ( function_exists( 'pll__' ) ) {
    		$text = pll__( $string );
    	}
    
    	if ( has_filter( 'wpml_translate_string' ) ) {
    		$event_name = rsvp_pro_get_event_name( $event_id );
    		$package    = array(
    			'kind'  => "RSVPPro - {$event_id}",
    			'name'  => "rsvp-pro-plugin-{$event_id}",
    			'title' => "RSVP Pro Plugin - {$event_name}",
    		);
    		$key_name   = strtolower( $key_name );
    		$key_name   = str_replace( ' ', '-', $key_name );
    		$text       = apply_filters( 'wpml_translate_string', $string, $key_name, $package );
    	}
    
    	return $text;
    }

  • На:
    function rsvp_pro_get_dynamic_translated_string( $key_name, $string, $event_id ) {
    	$text = $string;
    
    	if ( function_exists( 'pll__' ) ) {
    		$text = pll__( $string );
    	}
    
    	if ( has_filter( 'wpml_translate_string' ) ) {
    		$event_name = rsvp_pro_get_event_name( $event_id );
    		$package    = array(
    			'kind'  => "RSVPPro - {$event_id}",
    			'name'  => "rsvp-pro-plugin-{$event_id}",
    			'title' => "RSVP Pro Plugin - {$event_name}",
    		);
    		$key_name   = strtolower( $key_name );
    		$key_name   = str_replace( ' ', '-', $key_name );
    
    		// WPML Workaround for compsupp-7503
    		$key_name = substr($key_name, 0, 160);
    		
    		$text       = apply_filters( 'wpml_translate_string', $string, $key_name, $package );
    	}
    
    	return $text;
    }

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