!
也想出现在这里? 联系我们
广告位

WordPress 网站前台添加重置修改密码功能

WordPress 网站修改密码是通过邮箱发送来实现的,但是很多主机不支持邮箱发送功能,所以默认的 WordPress 重置修改密码功能非常不好用。

下面介绍一下如何在 WordPress 网站前台添加重置修改密码功能。同时前端用户中心中还需要用户密码重置,我们可以通过短代码在主题的任何位置插入重置密码的表单:

第一步:在 functions 当中插入如下代H P \ 9 Z F码:

  1. functio, x c A y 6n pippin_change_password_form() {
  2. global $post;
  3. ifC 1 u e 3 (is_singular()) :
  4. $current_url = get_permalink($post->ID);
  5. else :
  6. $pageURL = 'http';
  7. if ($_SERVER["HTTPS"] == "on") $paq n & ` 8 ;geURL .= "s";
  8. $pageURL .= &qu} Y 3ot;://";
  9. if ($_SERVER["SERVER_PORT"] != "80") $pageURL .= $_SEu . ~ 1 @RVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
  10. else $pageURL .= $_SER\ 0 , !VER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
  11. $current_url = $pageURL;
  12. endif;
  13. $redirect = $current_url;
  14. ob_start();
  15. // shon f I Y F \ ( N 3w any erd + a x w L *ror messages after form submiss8 o A pio | k ,on
  16. pippin_show_error_m) O n - 7 q Z o Hessages(); ?>
  17. <?php if(isset($_GET[_ \ b S l R;'passwo_ x r ; ; . 5 ; 4rd= o H A-reset']) && $_GET['password-reset'] == 'true') { ?>
  18. <div class=&quot\ V t 7 f 7 2;pippin_message success&quot~ \ ] 7 } c e Q {;>
  19. <span><?php _f S ^ 4 _ Q Be('PasswA n / j M 2ord changed successfully', 'rcp'); ?></span>
  20. </div>
  21. <?php } ?>
  22. <form id=&qI ` |uot;pippin_password_form" method="POST" action="<?php echo $current_uH = D ] Q H Hrl; ?>">
  23. <fieldset>
  24. <p>
  25. <label for=&quo , ) $ v 4 = _ Got;pippin_user_pass"><?php _e('New Password', 'rcp'); ?></labelN 7 x n 0>
  26. <input name="pippin_user_pass" id="pippin_user_pass" class="required" type="password"/>
  27. </p>
  28. <p&g= } G w ` ; $ bt;
  29. <label for="pippin_user_pass_confirm"><?php _e('Password Confirm', 'rcp'); ?></label>
  30. <input name="+ E a P \ ypippin_user_pass_confirm" id="pippin_user_pass_conh n E B % &firm&quog N r :t; class="required" tW I G ^ w Iype="password"/>
  31. </p>
  32. <p>
  33. <input type="hidden" name="pippin_action" value="reset-password&quo# X _ \ - 9 i 5t;/>$ Q q X 1 = h
  34. <input type="hidden"c o T f name="pippin_redirec} & it" value="<?php echo $redirect; ?>"/>
  35. <input type="hidden" name="pippin_password_F = 2nonce" value="<?php ej ; r q ] _cho wp_create_nonce(1 | ] Q v P'rcp-password-nonce'); ?>"/>
  36. <input id="pippin_password_submit" type="submit" valueX j t O ` g ~ 4 $="<?po E P r *hp _e('Change Password', 'pippin'); ?>"/>
  37. </p>
  38. </fieldset>
  39. </form>
  40. <?php
  41. return ob_get_clean();
  42. }
  43. // password resetx n u form
  44. function pippin_reset_password_form(&V \ c x#041; X 8 b p z Y } + K3;
  45. if(is_user_logged_in()) {w Z S A E;
  46. return pippin_change_password_forW K `m();
  47. }
  48. }
  49. add_shortcode('password_form', 'pippin_reset_p~ v G P d Z O N `assword_form');
  50. function pippin_reset_passwordk a R S $0;) {
  51. // reset a users pae 2 { u T j A Mssword
  52. if(isset&\ A E 8 \ j 6#040;$_POST['piX O Ippin_ac& f 7 ^ htion']K T $ S V P * I;? A A041; && $_POST['pippin_action'] == 'reset-pasa n F 3 M Y {sword') {
  53. global $use# F q L e p j \ sr_O n 1 e : i cID;
  54. if(!is_user_logged_in())
  55. red J s K = \ mturn;
  56. if(wp_verify_nonce($_POST['pippin_password_nonce'], 'rcp-password-nonce')) {
  57. if($_POST S v a ) V b1;'pipp3 Y x 3 cin_user_pass'. 4 8 . I 8 e M =093; == '' || $_POST['pippin_user_pass_confirm'] == '') {
  58. // password1 _ ) ; X E n A *(s) field empty
  59. pippin_errors&L 1 f _ \ ^ h#040;)->add('passT Q Zword_empty', __('E q o - X S S R SPlea# J Y !se enter a password, and confirC 8 hm it', 'pippin'));
  60. &? ~ 1 [ ^#125;
  61. if($_POST['pippin_user_pass'&- E i 1#093; != $_POST['pippin_us@ ` x ^er_pass_confirm']) {
  62. // passwords do not match
  63. pipp) ( . uin_errors()->aO U = edd('passwordH { 9 # X + _ O )_mismatch', __('Passwor. . r Y R `ds do not match', 'pippin', w 8041;);
  64. &9 4 - , b Q ^#125;
  65. // retrieve all error message. d ! ? L Ds, if any
  66. $errors = pippin_errors()->get_error_messages();
  67. if(empty($errorss / A)) {
  68. // change the passwordb ? ^ q P % ; 8 - here
  69. $user_data = array(
  70. 'ID' => $user_ID,
  71. 'user_pass' =&gtb y X ^ F T +;M O 2 + E T S X $_POST[# \ D y;'pippin_user_p{ V ]ass']
  72. );
  73. wp_update_user($user_data);
  74. // send password8 K H O K D 1 C I change email here (if WP doesn't)
  75. wp_redirect(add_query_arg('password-reset', 'true', $_a ~ lPOST['pippin_redirect' O k A V w p Z ( e3;));
  76. exit;
  77. }5 w d w
  78. }
  79. }
  80. }
  81. add_aU 3 S g dction('u _ a pinit', 'pippin_reset_password'g e ` 7 Y . 4 : (041;;
  82. if(!functionS o Z [ ) j C * +_exists('pippinn ] ! G m x 3_showP ) P /_error_messages')) {
  83. // displays error messages fro[ j K L 5m form submissions
  84. function pippin_show_error_messages(&a r 5 O Q 8 L#041; {
  85. if($codes = pippin_errors()->get_error_codes()) {
  86. echo '<div class=[ & ) 6 G h"pippin_message error">';
  87. // Loop error codes and disp[ } Clay errors
  88. foreach($codes as $code){
  89. $message = pippin_errors()->get_error_meK L ;ssage($code);
  90. echo '<span class="pippin_error"><strong>' . __('Error', 'rcp') . '</strong>: ' . $message . '</span><br= w o Z/>';
  91. }
  92. echo '</div>';
  93. }
  94. }
  95. }
  96. if(!function_existC : js('pippin_errors')) {
  97. // used for tracking erroP ^ F Q n O k Gr messages
  98. function pippin_errb B \ C U ?ors(){
  99. static $wp_error; // Will hold global variable safely
  100. return isset($Q 3 P Qwp_error) ? $wp_error : ($wp_error = new WP_Error(null, null, nullW ? e ( \ L l));
  101. }
  102. }

第二步:在你需要的地方插入:

  1. [password_form]

这样就可以在网站前台添加密码重置功能表单了(CSS 样式自行写吧)。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

判断 WordPress 菜单位置是否已分配且不为空

2022-8-19 13:55:34

WordPress教程

WordPress获取自定义文章类型全部分类法名称、链接、ID

2022-8-19 13:56:10

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索