/**
  * Creates a new User.
  *
  * @package s2Member\API_Remote_Ops
  * @since 110713
  *
  * @param array An input array of Remote Operation parameters.
  * @return str Returns a serialized array with an `ID` element object on success,
  * 	else returns a string beginning with `Error:` on failure; which will include details regarding the error.
  */
 public static function create_user($op = NULL)
 {
     if (!empty($op["op"]) && $op["op"] === "create_user" && !empty($op["data"]) && is_array($op["data"])) {
         if (!empty($op["data"]["modify_if_login_exists"])) {
             if (!empty($op["data"]["user_login"]) && ($_user = new WP_User((string) $op["data"]["user_login"])) && !empty($_user->ID)) {
                 return c_ws_plugin__s2member_pro_remote_ops_in::modify_user(array_merge($op, array("op" => "modify_user")));
             }
         }
         $GLOBALS["ws_plugin__s2member_registration_vars"] = array();
         $v =& $GLOBALS["ws_plugin__s2member_registration_vars"];
         $v["ws_plugin__s2member_custom_reg_field_user_login"] = (string) @$op["data"]["user_login"];
         $v["ws_plugin__s2member_custom_reg_field_user_email"] = (string) @$op["data"]["user_email"];
         if (empty($op["data"]["user_pass"]) || !is_string($op["data"]["user_pass"])) {
             $op["data"]["user_pass"] = wp_generate_password();
         }
         $GLOBALS["ws_plugin__s2member_generate_password_return"] = $op["data"]["user_pass"];
         $v["ws_plugin__s2member_custom_reg_field_first_name"] = (string) @$op["data"]["first_name"];
         $v["ws_plugin__s2member_custom_reg_field_last_name"] = (string) @$op["data"]["last_name"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_level"] = (string) @$op["data"]["s2member_level"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_ccaps"] = (string) @$op["data"]["s2member_ccaps"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_registration_ip"] = (string) @$op["data"]["s2member_registration_ip"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"] = (string) @$op["data"]["s2member_subscr_gateway"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"] = (string) @$op["data"]["s2member_subscr_id"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_custom"] = (string) @$op["data"]["s2member_custom"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time"] = (string) @$op["data"]["s2member_auto_eot_time"];
         $v["ws_plugin__s2member_custom_reg_field_s2member_notes"] = (string) @$op["data"]["s2member_notes"];
         $v["ws_plugin__s2member_custom_reg_field_opt_in"] = (string) @$op["data"]["opt_in"];
         if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) {
             foreach (json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field) {
                 $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"]));
                 $field_id_class = preg_replace("/_/", "-", $field_var);
                 if (isset($op["data"]["custom_fields"][$field_var])) {
                     $v["ws_plugin__s2member_custom_reg_field_" . $field_var] = $op["data"]["custom_fields"][$field_var];
                 }
             }
         }
         $create = array("user_login" => (string) @$op["data"]["user_login"], "user_pass" => (string) @$op["data"]["user_pass"], "user_email" => (string) @$op["data"]["user_email"]);
         if ((is_multisite() && ($new = $user_id = c_ws_plugin__s2member_registrations::ms_create_existing_user($create["user_login"], $create["user_email"], $create["user_pass"])) || ($new = $user_id = wp_create_user($create["user_login"], $create["user_pass"], $create["user_email"]))) && !is_wp_error($new)) {
             if (is_object($user = new WP_User($user_id)) && !empty($user->ID) && ($user_id = $user->ID)) {
                 if (!empty($op["data"]["notification"])) {
                     wp_new_user_notification($user_id, $op["data"]["user_pass"]);
                 }
                 return serialize(array("ID" => $user_id));
             }
             return "Error: Creation may have failed. Unable to obtain WP_User ID.";
         } else {
             if (is_wp_error($new) && $new->get_error_code()) {
                 return "Error: " . $new->get_error_message();
             }
         }
         return "Error: User creation failed for an unknown reason. Please try again.";
     }
     return "Error: Empty or invalid request ( `create_user` ). Please try again.";
 }
Exemple #2
0
 /**
  * Creates a new User.
  *
  * @package s2Member\API_Remote_Ops
  * @since 110713
  *
  * @param array $op An input array of Remote Operation parameters.
  *
  * @return string Returns a serialized array with an `ID` element object on success,
  *   else returns a string beginning with `Error:` on failure; which will include details regarding the error.
  */
 public static function create_user($op = NULL)
 {
     if (!empty($op['op']) && $op['op'] === 'create_user' && !empty($op['data']) && is_array($op['data'])) {
         if (!empty($op['data']['modify_if_login_exists'])) {
             if (!empty($op['data']['user_login']) && ($_user = new WP_User((string) $op['data']['user_login'])) && !empty($_user->ID)) {
                 return c_ws_plugin__s2member_pro_remote_ops_in::modify_user(array_merge($op, array('op' => 'modify_user')));
             }
         }
         $GLOBALS['ws_plugin__s2member_registration_vars'] = array();
         $v =& $GLOBALS['ws_plugin__s2member_registration_vars'];
         $v['ws_plugin__s2member_custom_reg_field_user_login'] = (string) @$op['data']['user_login'];
         $v['ws_plugin__s2member_custom_reg_field_user_email'] = (string) @$op['data']['user_email'];
         if (empty($op['data']['user_pass']) || !is_string($op['data']['user_pass'])) {
             $op['data']['user_pass'] = wp_generate_password();
         }
         $GLOBALS['ws_plugin__s2member_generate_password_return'] = $op['data']['user_pass'];
         $v['ws_plugin__s2member_custom_reg_field_first_name'] = (string) @$op['data']['first_name'];
         $v['ws_plugin__s2member_custom_reg_field_last_name'] = (string) @$op['data']['last_name'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_level'] = (string) @$op['data']['s2member_level'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_ccaps'] = (string) @$op['data']['s2member_ccaps'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_registration_ip'] = (string) @$op['data']['s2member_registration_ip'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway'] = (string) @$op['data']['s2member_subscr_gateway'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_subscr_id'] = (string) @$op['data']['s2member_subscr_id'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_custom'] = (string) @$op['data']['s2member_custom'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time'] = (string) @$op['data']['s2member_auto_eot_time'];
         $v['ws_plugin__s2member_custom_reg_field_s2member_notes'] = (string) @$op['data']['s2member_notes'];
         $v['ws_plugin__s2member_custom_reg_field_opt_in'] = (string) @$op['data']['opt_in'];
         if ($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields']) {
             foreach (json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], TRUE) as $field) {
                 $field_var = preg_replace('/[^a-z0-9]/i', '_', strtolower($field['id']));
                 $field_id_class = preg_replace('/_/', '-', $field_var);
                 if (isset($op['data']['custom_fields'][$field_var])) {
                     $v['ws_plugin__s2member_custom_reg_field_' . $field_var] = $op['data']['custom_fields'][$field_var];
                 }
             }
         }
         $create = array('user_login' => (string) @$op['data']['user_login'], 'user_pass' => (string) @$op['data']['user_pass'], 'user_email' => (string) @$op['data']['user_email']);
         /** @var WP_Error|integer $new Need this for IDEs. Particular in the case of a WP_Error. */
         if ((is_multisite() && ($new = $user_id = c_ws_plugin__s2member_registrations::ms_create_existing_user($create['user_login'], $create['user_email'], $create['user_pass'])) || ($new = $user_id = wp_create_user($create['user_login'], $create['user_pass'], $create['user_email']))) && !is_wp_error($new)) {
             if (is_object($user = new WP_User($user_id)) && !empty($user->ID) && ($user_id = $user->ID)) {
                 if (!empty($op['data']['notification'])) {
                     wp_new_user_notification($user_id, $op['data']['user_pass']);
                 }
                 return serialize(array('ID' => $user_id));
             }
             return 'Error: Creation may have failed. Unable to obtain WP_User ID.';
         } else {
             if (is_wp_error($new) && $new->get_error_code()) {
                 return 'Error: ' . $new->get_error_message();
             }
         }
         return 'Error: User creation failed for an unknown reason. Please try again.';
     }
     return 'Error: Empty or invalid request ( `create_user` ). Please try again.';
 }