Function Reference: geodir_wpml_ajax_set_guest_lang

Summary

Set the WPML language for AJAX requests for non logged user.

Description

Custom AJAX requests always return the default language content.

Global Values

$sitepress
(object) (required) Sitepress WPML object.

Default: None

Change Log

Since: 1.6.18

Source File

geodir_wpml_ajax_set_guest_lang() is located in geodirectory_hooks_actions.php [Line: 2936]

Source Code

 function geodir_wpml_ajax_set_guest_lang() {    
    if ( geodir_is_wpml() && wpml_is_ajax() && !is_user_logged_in() ) {
        if ( empty( $_GET['lang'] ) && !( !empty( $_SERVER['REQUEST_URI'] ) && preg_match( '@\.(css|js|png|jpg|gif|jpeg|bmp)@i', basename( preg_replace( '@\?.*$@', '', $_SERVER['REQUEST_URI'] ) ) ) ) ) {
            global $sitepress;
            
            $referer = wp_get_referer();
            
            $current_lang = $sitepress->get_current_language();
            $referrer_lang = $sitepress->get_language_from_url( $referer );
            
            if ( $referrer_lang && $current_lang != $referrer_lang ) {
                $_GET['lang'] = $referrer_lang;
            }
        }
    }
}