window.opener.ne_reload("");window.close();';
}
}
}
add_action('comment_form', 'ne_connect');
function ne_connect($id=""){
global $ne_loaded;
if($ne_loaded) {
return;
}
if(is_user_logged_in()){
global $user_ID;
$nedata = get_user_meta($user_ID, 'nedata',true);
if($nedata){
}
return;
}
$ne_url = WP_PLUGIN_URL.'/'.dirname(plugin_basename (__FILE__));
?>
user_id;
}
if (is_object($id_or_email)){
$id_or_email = $id_or_email->user_id;
}
if($neavatar = get_usermeta($id_or_email, 'neavatar')){
$avatar = "
";
return $avatar;
}else {
return $avatar;
}
}
function ne_confirm(){
global $ne_consumer_key, $ne_consumer_secret;
if(!class_exists('NeOAuth')){
include dirname(__FILE__).'/163OAuth.php';
}
$to = new NeOAuth($ne_consumer_key, $ne_consumer_secret, $_GET['oauth_token'],$_SESSION['ne_oauth_token_secret']);
$tok = $to->getAccessToken($_REQUEST['oauth_verifier']);
$to = new NeOAuth($ne_consumer_key, $ne_consumer_secret, $tok['oauth_token'], $tok['oauth_token_secret']);
$neInfo = $to->OAuthRequest('http://api.t.163.com/account/verify_credentials.json', 'GET',array());
if($neInfo == "no auth"){
echo '';
return;
}
$neInfo = json_decode($neInfo);
if((string)$neInfo->domain){
$ne_user_name = $neInfo->domain;
} else {
$ne_user_name = $neInfo->id;
}
ne_login($neInfo->id.'|'.$ne_user_name.'|'.$neInfo->screen_name.'|'.$neInfo->url.'|'.$tok['oauth_token'] .'|'.$tok['oauth_token_secret'].'|'.$neInfo->profile_image_url);
}
function ne_login($Userinfo) {
$userinfo = explode('|',$Userinfo);
if(count($userinfo) < 7) {
wp_die("An error occurred while trying to contact 163 Connect.");
}
$userdata = array(
'user_pass' => wp_generate_password(),
'user_login' => $userinfo[1],
'display_name' => $userinfo[2],
'user_url' => $userinfo[3],
'user_email' => $userinfo[1].'@t.163.com'
);
if(!function_exists('wp_insert_user')){
include_once( ABSPATH . WPINC . '/registration.php' );
}
$wpuid = get_user_by_login($userinfo[1]);
if(!$wpuid){
if($userinfo[0]){
$wpuid = wp_insert_user($userdata);
if($wpuid){
update_usermeta($wpuid, 'neid', $userinfo[0]);
update_usermeta($wpuid, 'neavatar', $userinfo[6]);
$ne_array = array (
"oauth_access_token" => $userinfo[4],
"oauth_access_token_secret" => $userinfo[5],
);
update_usermeta($wpuid, 'nedata', $ne_array);
}
}
} else {
update_usermeta($wpuid, 'neid', $userinfo[0]);
update_usermeta($wpuid, 'neavatar', $userinfo[6]);
$ne_array = array (
"oauth_access_token" => $userinfo[4],
"oauth_access_token_secret" => $userinfo[5],
);
update_usermeta($wpuid, 'nedata', $ne_array);
}
if($wpuid) {
wp_set_auth_cookie($wpuid, true, false);
wp_set_current_user($wpuid);
}
}
function ne_sinauser_to_wpuser($neid) {
return get_user_by_meta('neid', $neid);
}
if(!function_exists('get_user_by_meta')){
function get_user_by_meta($meta_key, $meta_value) {
global $wpdb;
$sql = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '%s' AND meta_value = '%s'";
return $wpdb->get_var($wpdb->prepare($sql, $meta_key, $meta_value));
}
function get_user_by_login($user_login) {
global $wpdb;
$sql = "SELECT ID FROM $wpdb->users WHERE user_login = '%s'";
return $wpdb->get_var($wpdb->prepare($sql, $user_login));
}
}
if(!function_exists('connect_login_form_login')){
add_action("login_form_login", "connect_login_form_login");
add_action("login_form_register", "connect_login_form_login");
function connect_login_form_login(){
if(is_user_logged_in()){
$redirect_to = admin_url('profile.php');
wp_safe_redirect($redirect_to);
}
}
}
?>