2016-10-23 81 views
2

我在我的網站上使用WooCommerce,並創建了自定義登錄和註冊頁面。新用戶不會看到標準my-account登錄頁面,而是進入自定義登錄頁面。如果用戶點擊鏈接,則鏈接到自定義註冊頁面。更改「重置密碼」的URL woocommerce

這兩頁都能正常工作。問題出現在創建時丟失了密碼部分。原來用戶將被帶到my-account/lost-password,但由於我想建立自定義頁面,我需要創建一個新的丟失密碼頁面。

我有這個網頁正常工作。一旦用戶輸入了他們的用戶名或密碼並點擊了按鈕,就會發送一封電子郵件給他們,並帶有一個url鏈接,他們需要點擊才能進入允許他們重置密碼的頁面。這是我遇到問題的地方。

本來用戶將被帶到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> 

,當他們重新它,它沒有更新的用戶密碼。


UPDATE 看來,這個問題是與沒有傳遞到我的自定義窗體$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> 

這些隱藏的輸入沒有價值。

有沒有辦法將這些參數傳遞給我的自定義窗體,允許填充隱藏的輸入並更新用戶的密碼?

回答

1

將忘記的密碼URL從WooCommerce重置爲WordPress。由於您必須登錄才能查看該網站,因此忘記的密碼無法訪問WooCommerce頁面。將此添加到functions.php會將密碼url重置爲WordPress網址。

// WordPress的+ WooCommerce重置密碼的URL

function reset_pass_url() { $siteURL = get_option('siteurl'); return "{$siteURL}/wp-login.php?action=lostpassword"; } add_filter('lostpassword_url', 'reset_pass_url', 11, 0);