- Statut
- Ouvert
- Extension/thème associé
- Events Manager
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Si vous utilisez l’extension Events Manager, vous pouvez rencontrer un problème où les détails des tickets pour les événements récurrents ne s’affichent pas traduits dans les langues secondaires.
Solution de contournement
Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.
- Ouvrez le fichier …/wp-content/plugins/events-manager/classes/em-ticket.php.
- Cherchez la ligne 150.
- Remplacez :
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' ){ - Par :
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' ){ - Visitez la page présentant le problème dans la langue d’origine.
- Allez sur la page WPML > Traduction de chaînes, recherchez les chaînes et traduisez-les.