Intereting Posts
Я скопировал свой сайт на другой сайт, но все ссылки указывают на старый сайт Нужно ли использовать новую учетную запись WordPress.com для каждой установки Jetpack add_filter, где вопрос о статусе Изменить язык контента для одной страницы Как лучше контролировать работу WordPress Cron? Удалите двойное пространство после периода Функция JQuery window.send_to_editor Есть ли простой способ показывать рекламу только на странице WordPress, когда она станет популярной? Пагинация только не будет работать в шаблоне автора Простая команда петли foreach, необходимая в wordpress "loop" Остановите WordPress, добавив `-2` в конец моего URL после того, как я его изменил Как я могу использовать этот javascript правильно с wordpress? Как вызвать функцию плагина в footer.php В администраторе WordPress, как я могу узнать, на какой странице (themes.php, widgets.php и т. Д.) Я нахожусь? Как использовать get_results () в интерфейсе виджета?

вызов wp_insert_user в пользовательском классе не работает

im создает пользовательский класс для управления пользователями в wordpress и chamilo, но это не главное.

Класс выглядит следующим образом:

class Platform { private $security_key = '..'; private $secret_key; private $firstname; private $lastname; private $status; private $email; private $login; private $password; private $encrypt_method = "md5"; private $original_user_id_name = "uid"; private $original_user_id_value; public function __construct() { $arguments = func_get_args(); if(!empty($arguments)) foreach($arguments[0] as $key => $property) if(property_exists($this, $key)) $this->{$key} = $property; } /* * Do autoryzacji z chamilo potrzeba IP clienta + auth_code. * Z tych danych jest tworzyony API_KEY potrzeby podczas komunikacje z platformą. * Funkcje sprawdzają akutalne IP oraz auth_code platformy i generują API_KEY */ public function check_client_ip() { $ip = trim($_SERVER['REMOTE_ADDR']); if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { list($ip1,$ip2) = split(',',$_SERVER['HTTP_X_FORWARDED_FOR']); $ip = trim($ip1); } return $ip; } public function generate_secret_key() { $ip_address = $this->check_client_ip(); $secret_key = sha1($ip_address.$this->security_key); return $secret_key; } /* * Dodawanie użytkownika w Chamilo */ public function add_user_to_chamilo() { $params = array( 'firstname' => $this->firstname, 'lastname' => $this->lastname, 'status' => '5', // 5 STUDENT - 1 TEACHER - zawsze ustawiamy na studenta - konta administracyjne będziemy tworzyć ręcznie 'email' => $this->email, 'loginname' => $this->login, 'password' => $this->password, // encrypted using sha1 'encrypt_method' => 'md5', 'language' => 'Polish', 'official_code' => '', 'phone' => '', 'expiration_date' => '0000-00-00', 'original_user_id_name' => 'uid', // the extra user field that will be automatically created in the user profile see: main/admin/user_fields.php 'original_user_id_value' => $this->wp_user_id, // third party user id 'secret_key' => $this->generate_secret_key(), ); echo "<pre>"; print_r($params); echo "</pre>"; //$client = new SoapClient('http://....pl/registration.soap.php?wsdl'); //$response = $client->WSCreateUserPasswordCrypted($params); } /* * Dodawanie użytkownika w WordPress */ public function add_user_to_wordpress() { $params = array( 'ID' => '', 'first_name' => $this->firstname, 'last_name' => $this->lastname, 'user_email' => $this->email, 'user_login' => $this->login, 'user_pass' => $this->password, 'role' => 'subscriber' ); echo "<pre>"; print_r($params); echo "</pre>"; wp_insert_user($params); } } 

Вот как я инициализирую класс на странице wordpress (page-adduser.php)

 $p = new Platform(array( 'firstname' => 'John', 'lastname' => 'Doe', 'email' => 'test@example.com', 'login' => 'test', 'password' => 'somepass' ) ); 

Затем я запускаю публичную функцию add_user_to_wordpress

 $p-> add_user_to_wordpress(); 

Таким образом, он печатает данные из массива $ params, но, похоже, это не работает пользователь wp_insert.

Распечатано:

 Array ( [ID] => [first_name] => John [last_name] => Doe [user_email] => test@example.com [user_login] => test [user_pass] => somepass [role] => subscriber ) 

Можете ли вы рассказать мне, как выполнять функции wordpress внутри моего пользовательского класса.

BTW класс i загружен в файл function.php в теме в качестве первой строки.

Solutions Collecting From Web of "вызов wp_insert_user в пользовательском классе не работает"

В дополнение к советам по отладке от @s_ha_dum, вы можете попытаться поймать возможный WP_Error созданный wp_insert_user() :

 $user_id = wp_insert_user($params); if ( is_wp_error( $user_id ) ) { echo $user_id->get_error_message(); } else { printf( 'User created with user_id = %d', $user_id ); } 

Может быть, пользователь уже существует?

Вы также можете использовать функции email_exists() и username_exists() для проверки.