【发布时间】:2015-05-17 03:34:27
【问题描述】:
我正在为客户设置 WooCommerce 商店,他已要求在提交重置密码表单后将用户重定向回登录表单。
这可能吗?哪个函数控制这个?
提前致谢。
【问题讨论】:
标签: wordpress redirect woocommerce
我正在为客户设置 WooCommerce 商店,他已要求在提交重置密码表单后将用户重定向回登录表单。
这可能吗?哪个函数控制这个?
提前致谢。
【问题讨论】:
标签: wordpress redirect woocommerce
更简洁的解决方案是使用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。
【讨论】:
有人问我这样做,我想我会说服他们不要这样做,但这是我想出的,这样你就可以看到消息,然后在 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')。
【讨论】:
我只是面临同样的问题。我认为控制这个的函数在文件 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')));
通过该更改,您将被重定向到我的帐户页面,客户可以在该页面登录,但这样做当然有两个问题:
如果有人能提出“更新安全”的解决方案,那就太好了。
最好的问候 克里斯托夫
【讨论】: