/** * Add user as registered WordPress user through OPM native method. * * @return void */ function addUserToOpm($integration) { // Check if OPM is active if (!defined("WS_PLUGIN__OPTIMIZEMEMBER_VERSION")) { return; } // Check if OPM integration is on $level = op_post('opm_level'); $packages = op_post('opm_packages'); if (false === $level && empty($packages)) { return; } // Fetch email $email = op_post('email'); if (empty($email)) { // InfusionSoft has special email field name // And there can be some strange case where email field name is located in "email_field" param if (isset($_POST['inf_field_Email'])) { $email = $_POST['inf_field_Email']; } elseif (isset($_POST['email_field']) && isset($_POST[$_POST['email_field']])) { $email = $_POST[$_POST['email_field']]; } else { return; } } // Parse first and last name $firstName = $lastName = ''; foreach ($_POST as $key => $value) { $key = strtolower($key); if ($key === 'name' || false !== stripos($key, 'fname') || false !== stripos($key, 'first')) { $firstName = $value; continue; } if (false !== stripos($key, 'lname') || false !== stripos($key, 'last')) { $lastName = $value; } } // Prepare data in OPM format $data = array('op' => 'create_user', 'data' => array('user_login' => $email, 'user_email' => $email, 'first_name' => $firstName, 'last_name' => $lastName, 'optimizemember_level' => $level, 'optimizemember_ccaps' => $packages, 'opt_in' => apply_filters('opm_optin_integration_opt_in', 1), 'notification' => apply_filters('opm_optin_integration_notification', 1))); // Call OPM native method for user creation if (class_exists("c_ws_plugin__optimizemember_pro_remote_ops_in")) { c_ws_plugin__optimizemember_pro_remote_ops_in::create_user($data); } }
/** * Creates a new User. * * @package optimizeMember\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__optimizemember_pro_remote_ops_in::modify_user(array_merge($op, array("op" => "modify_user"))); } } /**/ $GLOBALS["ws_plugin__optimizemember_registration_vars"] = array(); $v =& $GLOBALS["ws_plugin__optimizemember_registration_vars"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_user_login"] = (string) @$op["data"]["user_login"]; $v["ws_plugin__optimizemember_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__optimizemember_generate_password_return"] = $op["data"]["user_pass"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_first_name"] = (string) @$op["data"]["first_name"]; $v["ws_plugin__optimizemember_custom_reg_field_last_name"] = (string) @$op["data"]["last_name"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_level"] = (string) @$op["data"]["optimizemember_level"]; $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_ccaps"] = (string) @$op["data"]["optimizemember_ccaps"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_registration_ip"] = (string) @$op["data"]["optimizemember_registration_ip"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_gateway"] = (string) @$op["data"]["optimizemember_subscr_gateway"]; $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_subscr_id"] = (string) @$op["data"]["optimizemember_subscr_id"]; $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_custom"] = (string) @$op["data"]["optimizemember_custom"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_auto_eot_time"] = (string) @$op["data"]["optimizemember_auto_eot_time"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_optimizemember_notes"] = (string) @$op["data"]["optimizemember_notes"]; /**/ $v["ws_plugin__optimizemember_custom_reg_field_opt_in"] = (string) @$op["data"]["opt_in"]; /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"]) { foreach (json_decode($GLOBALS["WS_PLUGIN__"]["optimizemember"]["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__optimizemember_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__optimizemember_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."; }