- ステータス
- 未解決
- 関連するプラグイン/テーマ
- 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 > 文字列翻訳ページに移動し、文字列を検索して翻訳します。