更改“重置密码”的网址woocommerce

时间:2016-10-23 20:59:33

标签: php wordpress woocommerce e-commerce

我在我的网站上使用WooCommerce,我创建了自定义登录和注册页面。新用户不会看到标准的my-account登录页面,而是被带到自定义登录页面。如果用户单击该链接,则链接到自定义注册页面。

这两个页​​面都运行正常。创建丢失密码部分时出现问题。最初用户将被带到my-account/lost-password,但由于我想构建自定义页面,我需要创建一个新的丢失密码页面。

我的网页工作正常。用户输入用户名或密码并单击按钮后,会向他们发送一封电子邮件,其中包含他们需要单击的网址链接,以便转到允许他们重置密码的页面。这是我遇到问题的地方。

最初用户将被带到my-account页面,但由于我避免这种情况,我希望用户必须使用我自己的自定义页面。

电子邮件中指定用户需要访问的网址的代码如下:

<a class="link" href="<?php echo esc_url( add_query_arg( array( 'key' => $reset_key, 'login' => rawurlencode( $user_login ) ), wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) ) ) ); ?>"><?php _e( 'Click here to reset your password', 'woocommerce' ); ?></a>

如何让上述网址指向我的自定义页面并允许用户重置其密码。我确实设法将网址引导到我自己的页面,但将其更改为:

<a class="link" href="<?php echo esc_url( add_query_arg( array( 'key' => $reset_key, 'login' => rawurlencode( $user_login ) ), get_page_link(1839) ) ) ; ?>"><?php _e( 'Click here to reset your password', 'woocommerce' ); ?></a>

重置后没有更新用户密码。

更新 似乎此问题与$reset_key$user_login未传递到我的自定义表单有关。使用时:

<a class="link" href="<?php echo esc_url( add_query_arg( array( 'key' => $reset_key, 'login' => rawurlencode( $user_login ) ), wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) ) ) ); ?>">

我的表单上有隐藏的输入,其值为$reset_key$user_login,但是,在使用时:

<a class="link" href="<?php echo esc_url( add_query_arg( array( 'key' => $reset_key, 'login' => rawurlencode( $user_login ) ), wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) ) ) ); ?>"><?php _e( 'Click here to reset your password', 'woocommerce' ); ?></a>

这些隐藏的输入没有值。

有没有办法将这些参数传递给我的自定义表单,允许填充隐藏的输入并更新用户的密码?

2 个答案:

答案 0 :(得分:2)

将忘记密码网址从WooCommerce重置为WordPress。由于您必须登录才能查看该网站,因此忘记密码无法访问WooCommerce页面。将此添加到functions.php会将密码URL重置为WordPress网址。

// Wordpress + WooCommerce重设密码网址

Failed to execute showModal on dialog: The element is already open, and therefore cannot be opened modally.

答案 1 :(得分:0)

您可以使用Jquery做到这一点。 :)

function changeReseturl(){

jQuery(".woocommerce-LostPassword.lost_password a").attr('href','your-login-url');

}

add_action('wp_footer','changeReseturl');