WPML
Statut
Résolu
Signalé pour
WPML Multilingual CMS 3.3.5
Résolu dans
3.4

Aperçu de l’anomalie

Une erreur 404 :

« Échec du chargement de la ressource : le serveur a répondu avec un statut de 404 (Introuvable) »

lors de l’appel de admin_url( ‘admin-ajax.php’ ).

Le problème apparaît lorsque vous utilisez le paramètre « Un domaine différent par langue ».

Lorsque vous appelez admin_url( ‘admin-ajax.php’ ), vous voyez quelque chose comme ceci :

http://secondary-language-domain.com/secondary-lang-code/wp-admin/admin-ajax.php

au lieu de :

http://secondary-language-domain.com/wp-admin/admin-ajax.php.

Cela entraîne une erreur 404 :

« Échec du chargement de la ressource : le serveur a répondu avec un statut de 404 (Introuvable) ».

Cela sera corrigé dans la prochaine version publiée.

Solution de contournement

Connectez-vous à votre FTP et trouvez le fichier wpml-url-converter.class.php situé dans wp-content/plugins/sitepress-multilingual-cms/inc/url-handling/wpml-url-converter.class.php.

Recherchez la fonction admin_url_filter (vers la ligne 39) et remplacez le code suivant :

public function admin_url_filter( $url, $path ) {
    if ( 'admin-ajax.php' === $path ) {
        $url = $this->get_admin_ajax_url( $url );
    }
    return $url;
}

par :
public function admin_url_filter( $url, $path ) {
    if ( ( strpos( $url, 'http://' ) === 0 
      || strpos( $url, 'https://' ) === 0 ) 
      && 'admin-ajax.php' === $path 
      && $this->wpml_wp_api->is_front_end() ) {
        global $sitepress;
    
        $url = $this->convert_url( $url,
        $sitepress->get_current_language() );
    }

    return $url;
}

N’oubliez jamais de faire une sauvegarde avant de modifier quoi que ce soit dans vos fichiers.

Toutes les anomalies connues →