function infusionsoft_add_subscriber()
 {
     $post = $_POST;
     $data = array();
     $email = isset($post['email']) ? $post['email'] : '';
     $name = isset($post['name']) ? $post['name'] : '';
     $email = sanitize_email($email);
     $name = sanitize_text_field($name);
     $only_conversion = isset($post['only_conversion']) ? true : false;
     $infusionsoft_api = get_option($this->slug . '_api_key');
     $infusionsoft_app = get_option($this->slug . '_app');
     $infusionsoft_list_id = sanitize_text_field($post['list_id']);
     $style_id = sanitize_text_field($_POST['style_id']);
     $option = sanitize_text_field($_POST['option']);
     $on_success = isset($post['message']) ? 'message' : 'redirect';
     $msg_wrong_email = isset($post['msg_wrong_email']) && $post['msg_wrong_email'] !== '' ? $post['msg_wrong_email'] : __('Please enter correct email address.', 'smile');
     $msg_wrong_email = sanitize_text_field($msg_wrong_email);
     $msg = isset($_POST['message']) ? $_POST['message'] : __('Thank You! Your submission was successful.', 'smile');
     $msg = sanitize_text_field($msg);
     if ($on_success == 'message') {
         $action = 'message';
         $url = 'none';
     } else {
         $action = 'redirect';
         $url = esc_url($post['redirect']);
     }
     $contact = array();
     $contact['name'] = $name;
     $contact['email'] = $email;
     $contact['date'] = date("j-n-Y");
     //	Check Email in MX records
     $myApp = new iSDK();
     $myApp->cfgCon($infusionsoft_app, $infusionsoft_api, "on");
     if (!$only_conversion) {
         $email_status = apply_filters('cp_valid_mx_email', $email);
     } else {
         $email_status = false;
     }
     if ($email_status) {
         $status = 'success';
         $web_form_html = $myApp->getWebFormHtml($infusionsoft_list_id);
         $dom = new DOMDocument();
         $dom->loadHTML($web_form_html);
         $xpath = new DOMXPath($dom);
         $tags = $xpath->query('//input[@type="hidden"]');
         foreach ($tags as $tag) {
             if (trim($tag->getAttribute('name')) == "inf_form_xid") {
                 $inf_form_xid = trim($tag->getAttribute('value'));
             }
             if (trim($tag->getAttribute('name')) == "inf_form_name") {
                 $inf_form_name = trim($tag->getAttribute('value'));
             }
             if (trim($tag->getAttribute('name')) == "infusionsoft_version") {
                 $infusionsoft_version = trim($tag->getAttribute('value'));
             }
         }
         $posturl = "https://" . $infusionsoft_app . ".infusionsoft.com/app/form/process/{$inf_form_xid}";
         $fields = array('inf_field_FirstName' => urlencode($name), 'inf_field_Email' => urlencode($email), 'infusionsoft_version' => urlencode($infusionsoft_version), 'inf_form_xid' => "{$inf_form_xid}", 'inf_form_name' => "{$inf_form_name}");
         $fields_string = '';
         foreach ($fields as $key => $value) {
             $fields_string .= $key . '=' . $value . '&';
         }
         trim($fields_string, '&');
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $posturl);
         curl_setopt($ch, CURLOPT_POST, count($fields));
         curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
         $curlResponse = curl_exec($ch);
         curl_close($ch);
         if ($curlResponse === FALSE) {
             // form was NOT successfully submitted
             print_r(json_encode(array('action' => $action, 'email_status' => $email_status, 'status' => 'error', 'message' => __("Something went wrong. Please try again.", "smile"), 'url' => '')));
             exit;
         } else {
             // add the contact to central contacts database
             $style_id = $_POST['style_id'];
             $option = $_POST['option'];
             if (function_exists("cp_add_subscriber_contact")) {
                 $isuserupdated = cp_add_subscriber_contact($option, $contact);
             }
             if (!$isuserupdated) {
                 // if user is updated don't count as a conversion
                 // update conversions
                 smile_update_conversions($style_id);
             }
         }
     } else {
         if ($only_conversion) {
             // update conversions
             $status = 'success';
             smile_update_conversions($style_id);
         } else {
             $msg = $msg_wrong_email;
             $status = 'error';
         }
     }
     print_r(json_encode(array('action' => $action, 'email_status' => $email_status, 'status' => $status, 'message' => $msg, 'url' => $url)));
     exit;
 }