- 상태
- 미해결
- 관련 플러그인/테마
- 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 > 문자열 번역 페이지로 이동하여 해당 문자열을 검색하고 번역하세요.