GG资源网

WordPress在评论框添加QQ获取用户名、邮箱、头像(WordPress主题开发中使用Ajax异步更新前端用户头像)

WordPress在评论框添加QQ获取用户名、邮箱、头像

国内QQ比较流行,在评论框添加QQ并获取用户名头像等非常方便用户使用。

如何实现这个功能呢?下边就来看这个步骤吧:

先把一下的代码添加到主题的 function.php

//添加QQ号码字段

add_action('wp_insert_comment','inlojv_sql_insert_qq_field',10,2);

function inlojv_sql_insert_qq_field($comment_ID,$commmentdata) {

$qq = isset($_POST['new_field_qq']) ? $_POST['new_field_qq'] : false;

update_comment_meta($comment_ID,'new_field_qq',$qq); // new_field_qq 是表单name值,也是存储在数据库里的字段名字

}

// 后台评论中显示qq字段

add_filter( 'manage_edit-comments_columns', 'add_comments_columns' );

add_action( 'manage_comments_custom_column', 'output_comments_qq_columns', 10, 2 );

function add_comments_columns( $columns ){

$columns[ 'new_field_qq' ] = __( 'QQ号' ); // 新增列名称

return $columns;

}

function output_comments_qq_columns( $column_name, $comment_id ){

switch( $column_name ) {

case "new_field_qq" :

// 这是输出值,可以拿来在前端输出,这里已经在钩子manage_comments_custom_column上输出了

echo get_comment_meta( $comment_id, 'new_field_qq', true );

break;

}

}

 

//留言板获取QQ头像

add_filter( 'get_avatar', 'inlojv_change_avatar', 10, 3 );

function inlojv_change_avatar($avatar){

global $comment;

if( get_comment_meta( $comment->comment_ID, 'new_field_qq', true ) ){

$qq_number = get_comment_meta( $comment->comment_ID, 'new_field_qq', true );

$qqavatar = file_get_contents('http://ptlogin2.qq.com/getface?appid=1006102&imgtype=3&uin='.$qq_number);

preg_match('/https:(.*?)&t/',$qqavatar,$m); // 匹配 http: 和 &t 之间的字符串

return '<img src="'.stripslashes($m[1]).'" class="avatar avatar-40 photo" alt="qq_avatar" />';

}else{

return $avatar ;

}

}

下载get_qqinfo.php的文件保存到当前主题的modules文件夹内,作为获取API的文件。

关注 私信

把下面的代码放到主题的JS文件里,可以是commen.js也 可以是main.js。

// 初始化

$(function(){

inlojv_js_getqqinfo();

});

// 设置cookie

function setCookie(a,c){var b=30;var d=new Date();d.setTime(d.getTime()+b*24*60*60*1000);document.cookie=a+"="+escape(c)+";expires="+d.toGMTString()}

// 获取cookie

function getCookie(b){var a,c=new RegExp("(^| )"+b+"=([^;]*)(;|$)");if(a=document.cookie.match(c)){return unescape(a[2])}else{return null}}

// 核心函数

function inlojv_js_getqqinfo(){

// 获取cookie

if(getCookie('user_avatar') && getCookie('user_qq') ){

//$('.comt-title img').attr('src',getCookie('user_avatar'));

$('#comt-qq').val(getCookie('user_qq')); //获取缓存QQ号

}

$('#comt-qq').on('blur',function(){

var qq=$('#comt-qq').val(); // 获取访客填在qq表单上的qq数字,其中#comt-qq表示QQ input标签上的id!

$('#email').val($.trim(qq)+'@qq.com'); // 将获取到的qq,改成qq邮箱填入邮箱表单,其中#email表示邮箱input标签上的id

// ajax方法获取昵称

$.ajax({

type: 'get',

url:jsui.uri+'/modules/get_qqinfo.php?type=getqqnickname&qq='+qq, //get_qqinfo所在位置,用于获取QQ信息

dataType: 'jsonp',

jsonp: 'callback',

jsonpCallback: 'portraitCallBack',

success: function(data) {

// console.log(data);

$('#author').val(data[qq][6]); // 将返回的qq昵称填入到昵称input表单上

setCookie('user_qq',qq); // 设置cookie

},

error: function() {

$('#comt-qq,#author,#email').val(''); // 获取失败清空表单

}

});

// 获取头像

$.ajax({

type: 'get',

url:jsui.uri+'/modules/get_qqinfo.php?type=getqqavatar&qq='+qq, //get_qqinfo所在位置,用户获取QQ头像信息

dataType: 'jsonp',

jsonp: 'callback',

jsonpCallback: 'qqavatarCallBack',

success: function(data) {

$('.comt-title img').attr('src',data[qq]); // 将返回的qq头像设置到你评论表单区域显示头像的节点上

setCookie('user_avatar',data[qq]); // 设置cookie

},

error: function() {

$('#comt-qq,#author,#email').val(''); // 获取失败清空表单

}

});

});

}

然后刷新文章页面,评论框此时可以获取QQ头像了。

WordPress主题开发中使用Ajax异步更新前端用户头像

html代码如下:

js(使用了JS中的FormData)代码如下:

php后端处理代码如下:

由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress在评论框添加QQ获取用户名、邮箱、头像(WordPress主题开发中使用Ajax异步更新前端用户头像)

发表回复

CAPTCHAis initialing...