- Статус
- Открыто
- Связанный плагин/тема
- Events Manager
- Теги темы
- Compatibility
Обзор проблемы
Если Вы используете плагин Events Manager, Вы можете столкнуться с проблемой, при которой информация о билетах для повторяющихся событий не отображается в переводе на дополнительных языках.
Обходное решение
Перед продолжением убедитесь, что Вы сделали полную резервную копию Вашего сайта.
- Откройте файл …/wp-content/plugins/events-manager/classes/em-ticket.php.
- Найдите строку 150.
- Замените:
function __get( $var ){ if( $var == 'name' || $var == 'ticket_name' || $var == 'description' || $var == 'ticket_description' ){ $prop = $var == 'name' || $var == 'description' ? 'ticket_'.$var : $var; if( EM_ML::$is_ml && !$this->ticket_parent && !empty($this->ticket_meta['langs'][EM_ML::$current_language][$prop]) ){ return $this->ticket_meta['langs'][EM_ML::$current_language][$prop]; }else{ return $this->{$prop}; } }elseif( $var == 'event' ){ - На:
function __get( $var ){ if( $var == 'name' || $var == 'ticket_name' || $var == 'description' || $var == 'ticket_description' ){ $prop = $var == 'name' || $var == 'description' ? 'ticket_'.$var : $var; // WPML Workaround for compsupp-7315 if ( class_exists('Sitepress') && isset( $this->ticket_id ) && isset( $this->event->post_id ) ) { $string_name = 'ticket_description_'.$this->ticket_id; $textdomain = 'event-tickets-'.$this->event->post_id ; $this->{$prop} = apply_filters('wpml_translate_single_string', $this->{$prop} , $textdomain, $string_name); } else if ( $prop == 'ticket_name' ) { $string_name = 'Ticket Name:'.substr($this->{$prop}, 0, 20); $textdomain = 'events-manager' ; if ( apply_filters('wpml_default_language', NULL ) == apply_filters( 'wpml_current_language', NULL )) { do_action( 'wpml_register_single_string', $textdomain, $string_name, $this->{$prop} ); } $this->{$prop} = apply_filters('wpml_translate_single_string', $this->{$prop} , $textdomain, $string_name); } if( EM_ML::$is_ml && !$this->ticket_parent && !empty($this->ticket_meta['langs'][EM_ML::$current_language][$prop]) ){ $check = $this->ticket_meta['langs'][EM_ML::$current_language][$prop]; return $this->ticket_meta['langs'][EM_ML::$current_language][$prop]; }else{ return $this->{$prop}; } }elseif( $var == 'event' ){ - Перейдите на страницу с проблемой на языке оригинала.
- Перейдите на страницу WPML > Перевод строк, найдите эти строки и переведите их.