示例#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);
    }
}