WPML
Statut
Résolu par l’auteur
Extension/thème associé
WP Event Manager
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Lors de la traduction d’événements créés avec WP Event Manager et WPML, les champs Organizer et Venue ne s’affichent pas toujours dans la langue par défaut sur l’interface publique.

Solution de contournement

Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.

Vous devrez apporter les modifications suivantes.


  1. Allez dans WPMLParamètresTraduction des champs personnalisés

  2. Réglez les champs personnalisés _event_organizer_ids et _event_venue_ids sur Copier.

  3. Ensuite, ouvrez le fichier /wp-content/plugins/wp-event-manager/wp-event-manager-template.php.

  4. Cherchez la ligne 1229.

  5. Remplacez :
    foreach ($post->_event_organizer_ids as $key => $organizer_id) {

    Par :

    foreach ($post->_event_organizer_ids as $key => $organizer_id) {
    
    	// WPML Workaround for compsupp-6662
    	if (class_exists('SitePress')) {
    		$organizer_id = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE  );
    	}


  6. Ensuite, ouvrez le fichier /wp-content/plugins/wp-event-manager/wp-event-manager-functions.php.

  7. Cherchez la ligne 1903.

  8. Remplacez :
    function get_event_organizer_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' )
    		return;
    
    	return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : '';
    }

    Par :

    function get_event_organizer_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' ) {
    		return;
    	}
    
    	// WPML Workaround for compsupp-6662
    	if ( class_exists('SitePress') && !empty($post->_event_organizer_ids) ) {
    		foreach ($post->_event_organizer_ids as $key => $organizer_id ) {
    			$result = $post->_event_organizer_ids;
    			$result[$key] = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE  );
    		}
    
    		return $result;
    	}	
    
    	return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : '';
    }

  9. Enfin, dans le même fichier, cherchez la ligne 1985.

  10. Remplacez :
    function get_event_venue_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' )
    		return;
    
    	return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : '';
    }

    Par :

    function get_event_venue_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' )
    		return;
    
    	// WPML Workaround for compsupp-6662
    	if ( class_exists('SitePress') && !empty($post->_event_venue_ids) ) {
    		$result = apply_filters( 'wpml_object_id', $post->_event_venue_ids , 'event_listing', TRUE  );
    		return $result;
    	}	
    
    	return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : '';
    }

Toutes les anomalies connues →