WordPress制作前端会员用户中心实用功能代码集合
文化
果修机科技资讯维修网
admin
2019-07-10 14:03

逍遥乐IT博客使用了完善前端会员中心,制作过程中也整合了几个实用的前端会员中心功能,现在将代码整理分享给大家。代码的作者均为 @露兜博客。

让 WordPress 支持中文用户名让 WordPress 支持中文用户名 既然是面向国内用户,支持中文用户名就太有必要了。

//让wordpress支持中文用户名function ludou_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 _.\[emailprotected]]|iu', '', $username); } $username = trim( $username ); // Consolidate contiguous whitespace $username = preg_replace( '|\s+|', ' ', $username ); return $username;}add_filter ('sanitize_user', 'ludou_sanitize_user', 10, 3);

非管理员不允许进入后台既然有了前端会员中心,用户就没必要进入后台了,禁止非管理员进入可提高安全性南京苹果维修点

//非管理员不允许进入后台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登录Email登录大家并陌生,忘记用户名用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(__('strongERROR/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);}

让用户默认不显示工具栏WordPress默认会对新注册的用户开启工具栏(就是顶部固定的那陀黑乎乎的玩意),说实话它常与我们的前端样式格格不入,简直是丑爆了,对用户而言又没有什么实际用处,还是关了它好。

//让用户默认不显示工具栏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' );}

希望对大家有所帮助杭州苹果维修客服