web-dev-qa-db-fra.com

Les utilisateurs mobiles redirigés vers une autre page lors de la connexion, sauf s'ils sont liés à un autre message

J'ai un site Web sensible qui est accessible via connexion uniquement. Toutes les pages sont accessibles via mobile/ordinateur de bureau. Nous pensions simplement qu’il était plus approprié d’adopter une page différente pour les utilisateurs mobiles.

J'ai précédemment demandé à rediriger les utilisateurs mobiles vers une autre page de destination et j'ai obtenu cette réponse (qui fonctionne très bien):

add_filter('login_redirect', function($to, $request, $user)
{
    if ( wp_is_mobile() ) $to = home_url().'/mobile-news';

    return $to;
}, PHP_INT_MAX, 3);

Actuellement, si un utilisateur est lié à un article de presse (par exemple, site.com/exciting-news-article), il rencontrera la page de connexion (ceci est normal). Cependant, une fois connecté, la demande de redirection est ignorée en faveur de (site). .com/mobile-news) page.

Je dois adapter cela pour que, s'ils sont liés à un article d'actualité spécifique, ils y aillent à la place de la page d'informations mobiles.

J'ai essayé différentes solutions mais cela semble ignorer complètement. C'est ce que j'ai actuellement et cela ne fonctionne pas correctement:

add_filter('login_redirect', function($to, $request, $user)
{
    if ( wp_is_mobile() ) {
      if ($_GET['redirect_to'] != '') {
          $to = $_GET['redirect_to'];

      }
      else {
          $to =  home_url().'/mobile-news';
      }
    }
    return $to;
}, PHP_INT_MAX, 3);

Quelqu'un a-t-il déjà rencontré ce problème - Je ne sais pas trop où je me trompe!

2
LucyMo

Essaye celui-là-

add_filter('login_redirect', function($to, $request, $user)
{
    if ( wp_is_mobile() && $request == null ) {
        return home_url().'/mobile-news';
    }
    return $to;
}, PHP_INT_MAX, 3);

Non testé, mais devrait fonctionner.

Remarque: utiliser une URL telle que celle-ci home_url().'/mobile-news' n'est pas une bonne idée, à mon avis.

Utilisez get_permalink( $post_id ) à la place. Où $post_id est l'ID de la page home_url().'/mobile-news'. Parce que, si le slug de cette page a été modifié, les visiteurs verront une page 404!

1
mukto90