登录重定向后的woocommerce

Posted

技术标签:

【中文标题】登录重定向后的woocommerce【英文标题】:woocommerce after login redirect 【发布时间】:2015-06-03 05:32:36 【问题描述】:

我在我的 woocommerce 登录表单中成功登录它是重定向到我所做的商店页面,

登录错误后它应该是同一页面,但它进入/wp-login.php。我得到了一些代码,但是当我输入错误的用户名或密码时它正在工作,但是当我输入空的用户名或密码时它正在运行/ wp-login.php.

这里是代码

function my_front_end_login_fail( $username,$password )
    $referrer = $_SERVER['HTTP_REFERER'];
    if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') )
      wp_redirect( $referrer . '?login_failed=failed' );
      exit;
    

你能帮帮我吗?

【问题讨论】:

【参考方案1】:

登录/注销重定向

add_filter('woocommerce_login_redirect', 'login_redirect');

function login_redirect($redirect_to) 
    return home_url();


add_action('wp_logout','logout_redirect');

function logout_redirect()
    wp_redirect( home_url() );
    exit;

【讨论】:

【参考方案2】:

如果你想在登录后重定向:

<?php
/**
* Redirect users to custom URL based on their role after login
*
* @param string $redirect
* @param object $user
* @return string
*/
function wc_custom_user_redirect( $redirect, $user ) 
  // Get the first of all the roles assigned to the user
  $role = $user->roles[0];
  $dashboard = admin_url();
  $myaccount = get_permalink( wc_get_page_id( 'shop' ) );
  if( $role == 'administrator' ) 
    //Redirect administrators to the dashboard
    $redirect = $dashboard;
   elseif ( $role == 'shop-manager' ) 
    //Redirect shop managers to the dashboard
    $redirect = $dashboard;
   elseif ( $role == 'editor' ) 
    //Redirect editors to the dashboard
    $redirect = $dashboard;
   elseif ( $role == 'author' ) 
    //Redirect authors to the dashboard
    $redirect = $dashboard;
   elseif ( $role == 'customer' || $role == 'subscriber' ) 
    //Redirect customers and subscribers to the "My Account" page
    $redirect = $myaccount;
   else 
    //Redirect any other role to the previous visited page or, if not available, to the home
    $redirect = wp_get_referer() ? wp_get_referer() : home_url();
  
  return $redirect;

add_filter( 'woocommerce_login_redirect', 'wc_custom_user_redirect', 10, 2 ); 

【讨论】:

感谢 Sandeep,此代码在登录重定向后显示,但我想在登录错误后重定向,我的代码适用于错误的用户名和密码,但空的用户名和密码不起作用.. 好吧,你的问题是如果用户没有填写用户名和密码,你想将用户重定向到商店页面。 No sandeep,通常在 woocommerce 中,如果我们输入错误的用户名和密码,它会进入 www.websitename/wp-login.php 并显示错误消息,登录客户不喜欢去 www.websitename /wp-login.php 而不是该链接我想显示带有错误消息的同一页面,该代码(页面顶部)仅在我们输入错误的用户名或密码时才有效,如果我们提供空白用户名或密码,它是去wp-login.php,你能理解我的问题吗...

以上是关于登录重定向后的woocommerce的主要内容,如果未能解决你的问题,请参考以下文章

成功登录后的 Node.js Express 无限重定向循环

成功登录后的 Django 重定向

React - 登录到尝试页面后的路由和重定向

Spring security - 身份验证后的 GWT 重定向

获得权限后的 Facebook 登录让 Safari 空白页面打开,而不是在 iOS 10 和 iOS 11 中重定向到我的应用

登录成功后重定向到新页面