WooCommerce - 在用户重置密码后重定向用户

时间:2015-03-14 18:45:59

标签: wordpress redirect woocommerce

我正在为客户设置一个WooCommerce商店,他已要求在提交重置密码表单后将用户重定向回登录表单。

这可能吗?哪个功能控制了这个?

提前致谢。

3 个答案:

答案 0 :(得分:11)

更清晰的解决方案是使用woocommerce_customer_reset_password操作重定向:

function woocommerce_new_pass_redirect( $user ) {
  wp_redirect( get_permalink(woocommerce_get_page_id('myaccount')));
  exit;
}

add_action( 'woocommerce_customer_reset_password', 'woocommerce_new_pass_redirect' );

此代码可以放在functions.php

答案 1 :(得分:0)

我只是面对同样的问题。我认为控制它的功能在文件woocommerce / includes / class-wc-form-handler.php中。我更改了以下行:

wp_redirect('重置',' true',remove_query_arg(数组('密钥','登录')))) ;

wp_redirect(get_permalink(get_option(' woocommerce_myaccount_page_id')));

通过该更改,您将被重定向到客户可以登录的my-account页面,但当然有两个问题:

  1. 客户未收到密码恢复成功的消息
  2. 进行woocommerce更新,文件被原始文件覆盖
  3. 如果有人可以提出更新安全"那就太棒了。溶液

    祝你好运 克里斯托弗

答案 2 :(得分:0)

有人问过我这样做了,我想我会把它说出来,但是我想出的是这样你就可以看到这条消息,然后在5秒内被重定向。添加消息/链接,让他们知道您将重定向。此外,如果您将模板文件添加到主题

,这将持续通过WooCommerce升级

将form-lost-password.php模板文件添加到主题中,并添加以下代码:

        if ( $_GET[reset] = true && ( 'lost_password' == $args['form']) ) {
            $my_account_url = get_site_url() . '/my-account';
            echo "<script>window.setTimeout(function(){window.location.replace('$my_account_url')}, 5000)</script>";
        }

如果你不想延迟时间摆脱window.setTimeout(),只需使用window.location.replace(&#39; $ my_account_url&#39;)。