WordPress制作前端会员用户中心实用功能代码

作者 : 阿灿 本文共1774个字,预计阅读时间需要5分钟 发布时间: 2020-12-7 共89人阅读

WordPress 支持中文用户名

//让wordpress支持中文用户名
function xh_sanitize_user ($username, $raw_username, $strict) {
  $username = wp_strip_all_tags( $raw_username );
  $username = remove_accents( $username );
  // Kill octets
  $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
  $username = preg_replace( '/&.+?;/', '', $username ); // Kill entities
  // 网上很多教程都是直接将$strict赋值false,
  // 这样会绕过字符串检查,留下隐患
  if ($strict) {
    $username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);
  }
  $username = trim( $username );
  // Consolidate contiguous whitespace
  $username = preg_replace( '|\s+|', ' ', $username );
  return $username;
}
add_filter ('sanitize_user', 'xh_sanitize_user', 10, 3);

非管理员不允许进入后台

PS:既然有了前端会员中心,用户就没必要进入后台了,禁止非管理员进入可提高安全性。

/非管理员不允许进入后台
if ( is_admin() && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) ) {
  $current_user = wp_get_current_user();
  if($current_user->roles[0] == get_option('default_role')) {
    wp_safe_redirect( home_url() );
    exit();
  }
}

让 WordPress 支持Email登录

邮箱登录大家并陌生,忘记用户名用邮箱登录岂不是更友好。

// 修改WordPress用户名过滤机制,通过Email获取用户名
function ludou_allow_email_login($username, $raw_username, $strict) {
  if (filter_var($raw_username, FILTER_VALIDATE_EMAIL)) {
    $user_data = get_user_by('email', $raw_username);
    if (empty($user_data))
      wp_die(__('<strong>ERROR</strong>: There is no user registered with that email address.'), '用户名不正确');
    else
      return $user_data->user_login;
  }
  else {
    return $username;
  }
}
if (strpos($_SERVER['REQUEST_URI'], '?action=register') === FALSE && strpos($_SERVER['REQUEST_URI'], '?action=lostpassword') === FALSE && strpos($_SERVER['REQUEST_URI'], '?action=rp') === FALSE ) {
  add_filter('sanitize_user', 'ludou_allow_email_login', 10, 3);
}

让用户默认不显示工具栏

//让用户默认不显示工具栏
add_action("user_register", "set_user_admin_bar_false_by_default", 10, 1);
function set_user_admin_bar_false_by_default($user_id) {
    update_user_meta( $user_id, 'show_admin_bar_front', 'false' );
    update_user_meta( $user_id, 'show_admin_bar_admin', 'false' );
}
爱搜社,一个专注收集和分享网络源码资源的网站,建站辅导首选爱搜社
爱搜社 » WordPress制作前端会员用户中心实用功能代码

常见问题FAQ

如何通过本站投稿资源与作品?
本站为开放式资源共享平台,用户可通过后台或者联系站长进行发稿,同时可设置为收费作品,平台将收取百分之十的手续费,作品不得发布违禁,违法内容与广告,如被查出有关于黄赌毒等违法内容,平台将永久封禁帐号,并配合公安机关提供用户信息!
下载后的资源如何使用?
本站所有资源来源于网络,资源的使用一般附带在文章中,如果依旧不会使用 请联系作者或者寻求度娘帮助
免费下载或者VIP会员专享资源能否直接商用?
本站所有资源均来自互联网仅供学习,版权属于原作者所有!本站所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。如有侵权请联系Email:85136926@qq.com 并附上相关证明 24小时内给予删除!