【问题标题】:WooCommerce - Redirecting a User after They've Reset Their PasswordWooCommerce - 在用户重置密码后重定向用户
【发布时间】:2015-05-17 03:34:27
【问题描述】:

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

这可能吗?哪个函数控制这个?

提前致谢。

【问题讨论】:

    标签: wordpress redirect woocommerce


    【解决方案1】:

    更简洁的解决方案是使用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

    【讨论】:

    • 我认为这应该是公认的答案。它使用 woocommerce 和 wp 本机功能。升级安全且易于测试。
    • 我同意上面的评论,这是使用钩子和动作的更好答案。
    【解决方案2】:

    有人问我这样做,我想我会说服他们不要这样做,但这是我想出的,这样你就可以看到消息,然后在 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('$my_account_url')。

    【讨论】:

      【解决方案3】:

      我只是面临同样的问题。我认为控制这个的函数在文件 woocommerce/includes/class-wc-form-handler.php 中。我更改了以下行:

      wp_redirect(add_query_arg('reset', 'true', remove_query_arg(array('key', 'login'))));

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

      通过该更改,您将被重定向到我的帐户页面,客户可以在该页面登录,但这样做当然有两个问题:

      1. 客户没有收到密码恢复成功的消息
      2. 进行 woocommerce 更新时,文件会被原始文件覆盖

      如果有人能提出“更新安全”的解决方案,那就太好了。

      最好的问候 克里斯托夫

      【讨论】:

      • 嗨,Christoph,这实际上对我有点帮助,所以我很感激。问候,丹尼尔。
      • 直接更改插件文件不是最佳实践。这样做会阻止您彻底更新插件,因为您必须在每次升级时手动应用相同的补丁。一般来说,如果一个插件提供了钩子来完成你想要做的事情(就像 WooCommerce 看起来的那样),那么最好先使用它们。
      猜你喜欢
      • 2011-08-19
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 2017-02-04
      • 2021-06-09
      • 2020-02-11
      相关资源
      最近更新 更多