第一个函数需要一个在Wordpress上注册的用户,并使用'registration_errors'过滤器将他插入到外部数据库中。我还需要将Salesforce系统返回的ID插入Wordpress usermeta表中。最初,我尝试使用$ user_id作为全局wp_insert_user函数来执行update_user_meta($ user_id,'SF_User_ID',$ SFUserID);但是,$ user_id变量没有返回任何东西。现在,我正在尝试在单独的函数中执行update_user_meta,但它需要使用从第一个函数传递的值。当前代码返回此错误:当前代码不起作用,因为$ error没有被返回。向Wordpress用户注册添加额外字段
我无法弄清楚如何获取Wordpress用户标识并更新usermeta表,其中包含Salesforce在$ SFUserID变量中返回的ID。
function add_user_to_SF($errors, $sanitized_user_login, $user_email) {
if ($errors->get_error_code()) return $errors;
try {
$sObject = new stdclass();
$sObject->FirstName = $_POST['user_login'];
$sObject->LastName = $_POST['user_login'];
$sObject->Email = $_POST['user_email'];
$createResponse = $mySforceConnection->create(array($sObject), 'Contact');
$ids = array();
foreach ($createResponse as $createResult) {
array_push($ids, $createResult->id);
$SFUserID = $createResult->id;
add_action('user_register', 'addSFUserID', 10, 1);
}
} catch (Exception $e) {
$errors->add('demo_error', __('<strong>ERROR</strong>: There is a Salesforce problem.','mydomain'));
return $errors;
}
return $errors;
}
add_filter('registration_errors', 'add_user_to_SF', 10, 3);
function addSFUserID($user_id) {
update_user_meta($user_id, 'SF_User_ID', $SFUserID);
}
请澄清,我不明白你的答案如何与我的问题相关。 – MG1 2013-04-09 21:28:51
感谢您的回答,我编辑我的问题多一点澄清。 – MG1 2013-04-09 21:48:48
我看到,对于问题的第二部分,您最好的选择是使用全局变量。我会采取刺探@编辑并将其作为后续答案发布。 – GGG 2013-04-09 22:07:17