Я получаю следующее сообщение об ошибке, когда с кодом, который я написал для моего плагина:Фатальная ошибка: Вызов функции члена get_error_code() на не-объект
Ошибка: Критическая ошибка: Вызов функции-члена get_error_code() на не-объекте в .../wp-login.php в строке 335
Я попытался сделать var_dump ($ errors) внутри wp-login.php и он возвращает NULL.
Мой плагин: (Добавляет зарегистрированных пользователей к внешним БД)
function add_user_to_SF($errors, $sanitized_user_login, $user_email) {
global $SF_USERNAME;
global $SF_PASSWORD;
global $errors;
try {
$mySforceConnection = new SforceEnterpriseClient();
$mySoapClient = $mySforceConnection->createConnection(CD_PLUGIN_PATH . 'Toolkit/soapclient/enterprise.wsdl.xml');
$mySFlogin = $mySforceConnection->login($SF_USERNAME, $SF_PASSWORD);
$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);
}
} catch (Exception $e) {
$errors->add('demo_error', __('<strong>ERROR</strong>: There is a Salesforce problem.','mydomain'));
return $errors;
}
}
add_filter('registration_errors', 'add_user_to_SF', 10, 3);
Кроме того, когда я проверить этот процесс с помощью этой функции, все работает гладко.
function myplugin_registration_errors ($errors, $sanitized_user_login, $user_email) {
if (empty($_POST['first_name']))
$errors->add('first_name_error', __('<strong>ERROR</strong>: You must include a first name.','mydomain'));
return $errors;
}
add_filter('registration_errors', 'myplugin_registration_errors', 10, 3);