菜心哥 发表于 2023-9-19 16:09:38

Wordpress网站实现免邮箱(或可选)手机号注册

现在网站搭建最基本的注册功能还是用邮箱,然而时代在进步大多数人都不喜欢用邮箱来注册了。我们都爱用微信、QQ、或者手机号等注册登录。
微信和QQ登录确实方便,一般都实现一键注册登录了,如果在站点已经邮箱注册了就直接绑定一键登录。但实现起来也没那么容易,特别是微信各方面要求较多,而且还有个硬性要求就是网站一定要有备案。备案网站需要好几天时间,对于个人建站的站长来说,可能刚开始只是有点兴趣想了解建站,没有太多规划,所以都很少有备案的。
我觉得目前除了邮箱注册,容易实现的就是手机号注册,只要花点短信包的钱就行了,市场上对接网站的插件也很多。


首先我选用的是vaptcha手机注册插件,这款插件由智能人机验证服务商VAPTCHA官方提供,国内/国际短信极速发送。免费手机注册插件,傻瓜式操作,全面兼容PC及移动端,本站(Discuz)采用的也是这款插件。


Wordpress(后面简称WP)博客型网站选用这款插件更好用,还可实现免密登录,方便快捷。直接在后台安装开启即可使用,还保留了原来的邮箱填写项,也是必填项。如果您想取消注册页邮箱填写也是可以的,首先去网上找到了这样的代码://WordPress组织免邮箱注册功能实现
add_action('register_form','cwp_remove_remail_on_registration_screen');
function cwp_remove_remail_on_registration_screen(){
?>
<style>
/*隐藏电邮输入栏*/
#registerform>p:first-child+p{display:none;}
/*隐藏这句话:"密码将通过电子邮件发送给您。"*/
#reg_passmail{display:none;}
</style>
<script type="text/javascript" src="https://www.wpzt.net/<?php echo site_url('/wp-includes/js/jquery/jquery.js');?>"></script>
<script type="text/javascript">
/*为隐藏的邮件输入栏根据用户输入的用户名和当前的域名自动输入邮箱*/
jQuery(function(){
jQuery('#user_login').change(function(){
jQuery('#user_email').val(jQuery('#user_login').val()+'@'+window.location.host);
})
});
</script>
<?php
}把上面代码加到主题函数:function.php 中即可实现了。
但是,实现了免填写邮箱,你会发现对于大多数用户是很方便的,如果有部分用户需要填写自己的邮箱方便以后实现邮件接收功能,在注册时如果没有一些提示就会感到迷惑,于是会抱怨,怎么就取消邮箱填写了呢?
而且WP网站默认是不支持中文注册名的,如果用户用中文名注册也会遇到下面这样的(邮箱填写未隐藏时)提示:




自动填入的邮箱信息里有中文也是不行的(所以中文名注册不适合隐藏邮箱),会提示“请填写正确的手机号”,刚开始我是一头雾水的,因为验证码都收到了怎么手机号不正确呢?后面通过测试查找才知道这原因。这里要说明下,中文注册名也不能超过5个字,超过了也会出现上面图中那样的提示,字符字数限制和WP数据库设定以及字符规则限制造成的,数据库修改需要有一定经验和技术,不建议随便尝试,我也不会。
实现中文注册的方法很多,大家去网上找下就有了,如果觉得网站或主题更新后又要修改代码麻烦就用插件吧!WP后台是搜索不到这个插件了,这里我找到了一个,需要的来下载:
抱歉!上方文件不支持手机端下载
为了保留邮箱的部分功能,我们还是要对免邮箱注册功能代码进行适当的删减
//WordPress组织免邮箱注册功能实现
add_action('register_form','cwp_remove_remail_on_registration_screen');
function cwp_remove_remail_on_registration_screen(){
?>
</style>
<script type="text/javascript" src="https://www.wpzt.net/<?php echo site_url('/wp-includes/js/jquery/jquery.js');?>"></script>
<script type="text/javascript">
/*为隐藏的邮件输入栏根据用户输入的用户名和当前的域名自动输入邮箱*/
jQuery(function(){
jQuery('#user_login').change(function(){
jQuery('#user_email').val(jQuery('#user_login').val()+'@'+window.location.host);
})
});
</script>
<?php
}

把邮箱隐藏的代码删除,保留给需要填写真实邮箱的用户。
同时还要在注册页面有相关的提示,这样才能达到可选免填邮箱的功能,如下图:


提示代码如下,你可根据自己网站实际遇到的问题作提示修改:

//注册页添加自定义说明
add_action('register_form', 'register_message');
function register_message() {
    $html = '
      <div style="margin:10px 0;border:1px solid #ff4747;padding:10px">
            <p style="margin:5px 0;">
小编提示:这里根据自身需求调整哦!
<a href="https://www.zhuige.com" target="_blank">注册协议</a>
      </p>
      </div>';
    echo $html;
}
添加到WordPress主题的函数文件functions.php即可。


演示站:老菜心博客


页: [1]
查看完整版本: Wordpress网站实现免邮箱(或可选)手机号注册