2016-10-23 13 views
2

私は自分のウェブサイトでWooCommerceを使用しています。カスタムログインとサインアップページを作成しました。標準のmy-accountログインページを表示する代わりに、新しいユーザーはカスタムログインページに移動します。ユーザーがリンクをクリックすると、カスタム登録ページにリンクします。「リセットパスワード」のURLを変更するwooocommerce

これらのページはどちらも問題なく動作します。この問題は、パスワードセクションを失ったを作成したときに発生します。もともとユーザーはmy-account/lost-passwordになっていましたが、カスタムページを作成したいので、新しいパスワードページを作成する必要がありました。

このページは正しく動作しています。ユーザーがユーザー名またはパスワードを入力してボタンをクリックすると、パスワードをリセットできるページに移動するためにクリックする必要があるURLリンクが電子メールに送信されます。これは私が問題を抱えているところです。

当初のユーザーはmy-accountページになりましたが、これを避けるために、ユーザーは自分のカスタムページを使用する必要があります。

ユーザーがに行く必要がURLを指定したメール内のコードはそうのようなものです:私は私のカスタムページをポイントし、ユーザーが自分のパスワードをリセットできるようにするために上記のURLを取得するにはどうすればよい

<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> 

しかし:私は自分のページに私を指示するURLを取得するために管理しましたが、それを変更します。


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のURLにリセットされます。

// 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); 
関連する問題