昨天很高興的登入班網之後,卻發現……
資料竟然又被改回來了!!
(這可讓弦受到不小打擊呢!)仔細一看,結果發現了一個細節問題……
在 fbconnect.php 裡面,竟然還有「殘存」的部份沒被修正。
而這次修改很簡單,只需要打開 fbconnect.php 找到下面的函式:
function fbc_update_facebook_data($force=false) {
$last_cache_update = get_option(FBC_LAST_UPDATED_CACHE_OPTION);
$delta = time() - $last_cache_update;
if ($delta < 24*60*60 && !$force) {
return;
}
update_option(FBC_LAST_UPDATED_CACHE_OPTION,
time());
global $wpdb;
$sql = "SELECT user_id, meta_value FROM $wpdb->usermeta WHERE meta_key = 'fbuid'";
$res = $wpdb->get_results($wpdb->prepare($sql), ARRAY_A);
if (!$res) {
return -1;
}
$fbuid_to_wpuid = array();
foreach($res as $result) {
$fbuid_to_wpuid[$result['meta_value']] = $result['user_id'];
}
try {
$userinfo = fbc_anon_api_client()->users_getInfo(
array_keys($fbuid_to_wpuid),
fbc_userinfo_keys());
} catch(Exception $e) {
return -1;
}
$userinfo_by_fbuid = array();
foreach($userinfo as $info) {
$wpuid = $fbuid_to_wpuid[$info['uid']];
$userdata = fbc_userinfo_to_wp_user_used($info);
$userdata['ID'] = $wpuid;
wp_update_user($userdata);
}
return count($userinfo);
}
並且將其中的:
$userdata = fbc_userinfo_to_wp_user($info);
修正為:
$userdata = fbc_userinfo_to_wp_user_used($info);
那麼,就不會有問題了!
不過各位可能會疑惑,這次是要做什麼的呢?
上一次修改的部份是「新增使用者」
因此,假如比對到已經存在,就會進行登入。
而 WP-Facebook Connect 這款插件,似乎還會做「更新」
而只要碰到更新,就會把資料更新上來。
因此,這次是讓更新部份變成正常。
之後,各位就可以享受 WordPress 結合 Facebook 的時光拉!
而經過弦的使用,也決定替社團網站加上 Facebook 整合功能。
而且,還打算直接捨去 WordPress 原有的登入功能。
後台登入就大大方方的顯示一個 Facebook Connect 按鈕!
畢竟這樣還算挺方便的,雖然目前 WordPress + Facebook 沒有記憶時間的功能。
不過我想修改一下就會有了~