第一个函数采用在 Wordpress 上注册并使用“registration_errors”过滤器将他插入外部数据库的用户。我还需要将 Salesforce 系统返回的 ID 插入到 Wordpress 用户元表中。最初,我尝试使用 $user_id 作为主 wp_insert_user 函数的全局变量来执行 update_user_meta( $user_id, 'SF_User_ID', $SFUserID ); 但是, $user_id 变量没有返回任何内容。现在,我试图在一个单独的函数中执行 update_user_meta,但它需要使用从第一个函数传递的值。当前代码返回此错误:当前代码不起作用,因为没有返回 $error。
我不知道如何获取 Wordpress 用户 ID 并使用 Salesforce 在 $SFUserID 变量中返回的 ID 更新 usermeta 表。
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 );
}