Esempio n. 1
0
/**
 * 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);
    }
}
Esempio n. 2
0
 /**
  * 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.";
 }