我正在为客户设置一个WooCommerce商店,他已要求在提交重置密码表单后将用户重定向回登录表单。
这可能吗?哪个功能控制了这个?
提前致谢。
答案 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页面,但当然有两个问题:
如果有人可以提出更新安全"那就太棒了。溶液
祝你好运 克里斯托弗
答案 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;)。