/** * 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); } }