Soporte » Plugins y Hacks » Polylang – cambiar lenguaje actual

  • Resuelto tamarazambrana

    (@tamarazambrana)


    ¡Hola!

    Necesito filtrar los lenguajes que los usuarios de cada país pueden ver, para ellos quiero asegurarme que en Alemania solo pueden ver el idioma alemán.

    Encontré el código de abajo, puedo ver en el navegador que el idioma ha cambiado pero sigo recibiendo la página del idioma anterior y no redirecciona a la página del nuevo idioma. Agradecería si se os ocurre algo.

    function get_correct_page() {
       if( get_location_geoIP() == 'DE') {
          $current = pll_current_language();
          if( $current != 'de' ) {
    	global $post;
    	$post_id = $post->ID;
    	$post_id = pll_get_post($post_id, 'de');
    	$url     = get_permalink($post_id);
    
    	PLL()->curlang = PLL()->model->get_language( 'de' );
    
    	wp_redirect($url);
    	exit();
          }
       }
    }
    add_action( 'wp', 'get_correct_page');
Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Hola @tamarazambrana

    No uso el Polylang y no entiendo muy bien porque quieres hacer eso, yo por ejemplo hablo tres idiomas y desde mi punto de vista deberia ser yo quien decida en que idioma quiero ver tu web.

    Igualmente y si mi memoria no me falla no puedes usar la function wp_redirect en el action wp ya que cuando se ejecuta ya se declararon los encabezados. Prueba con este template_redirect.

    • Esta respuesta fue modificada hace 9 meses, 2 semanas por kallookoo.
    Iniciador del debate tamarazambrana

    (@tamarazambrana)

    @kallookoo muchas gracias por la ayuda.

    Bueno la configuración la eligió el cliente, es una tienda online y no todos los páises tienen los mismos productos, y no querían traducir lo de la tienda alemana. Finalmente lo que he hecho es un Multisite, uno para un país y otro para el otro, en uno he instalado Polylang y en otro no.

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • El debate ‘Polylang – cambiar lenguaje actual’ está cerrado a nuevas respuestas.