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

WooCommerce - Redirecting a User after They've Reset Their Password

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

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

提前致谢。

我也遇到了同样的问题。我认为控制它的函数在文件 woocommerce/includes/class-wc-form-handler.php 中。我更改了以下行:

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

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

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

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

如果有人能提出 "update-secure" 解决方案,那就太好了。

此致 克里斯托夫

有人问我是否要这样做,我想我会说服他们不要这样做,但这是我想出的办法,这样您就可以看到消息,然后在 5 秒内被重定向。添加 message/link 让他们知道您将重定向。另外,如果您将模板文件添加到主题中,这将持续到 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').

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