/** * Subscribes to Infusionsoft list. Returns either "success" string or error message. * @return string */ function subscribe_infusionsoft($api_key, $app_id, $list_id, $email, $name = '', $last_name = '') { if (!function_exists('curl_init')) { return __('curl_init is not defined ', 'rapidology'); } if (!class_exists('iSDK')) { require_once RAD_RAPIDOLOGY_PLUGIN_DIR . 'subscription/infusionsoft/isdk.php'; } try { $infusion_app = new iSDK(); $infusion_app->cfgCon($app_id, $api_key, 'throw'); } catch (iSDKException $e) { $error_message = $e->getMessage(); } $contact_details = array('FirstName' => $name, 'LastName' => $last_name, 'Email' => $email); $new_contact_id = $infusion_app->addWithDupCheck($contact_details, $checkType = 'Email'); $infusion_app->optIn($contact_details['Email']); $response = $infusion_app->grpAssign($new_contact_id, $list_id); if ($response) { $error_message = 'success'; } else { $error_message = esc_html__('Already In List', 'rapidology'); } return $error_message; }
<?php require_once "../src/isdk.php"; $app = new iSDK(); if ($app->cfgCon("connectionName")) { echo "connected<br/>"; echo "app connected<br/>"; $cid = 36; $groupId = 99; $result = $app->grpAssign($cid, $groupId); echo "tag applied to contact . " . $cid . "<br/>"; $campId = 83; $result = $app->campAssign($cid, $campId); echo "Added " . $cid . " to Followup Sequence " . $campId . "<br/>"; } else { echo "Connection Failed"; }
function NotifyCompleteProfileByInfusionsoftID($infusionsoft_id) { //this is used for appylying a infusionsoft group (tag) for customers who complete their profile. //auth.php will access this function require_once 'isdk.php'; $app = new iSDK(); if ($app->cfgCon("mps")) { $app->grpAssign($infusionsoft_id, 314); } }
<?php require_once "../src/isdk.php"; $app = new iSDK(); echo "created object<br/>"; if ($app->cfgCon("connectionName")) { echo "app connected<br/>"; $cid = 36; $tagId = 184; $result = $app->grpAssign($cid, $tagId); } else { echo "connection failed!<br/>"; }
$contact->_ShippingCompany = $order[12]; $contact->_ShippingFirstName = $order[10]; $contact->_ShippingLastName = $order[11]; $contact->Address2Street1 = $order[13]; $contact->Address2Street2 = $order[14]; $contact->City2 = $order[15]; $contact->_County2 = $order[16]; $contact->Country2 = $order[17]; $contact->PostalCode2 = $order[18]; $contact->Phone2 = $order[19]; } if ($order[9] > '') { $test = $app->findByEmail($contact->Email, array('Id')); if ($test[0]['Id'] < 1) { $contact->save(); $d = $app->dsQuery('Contact', 1, 0, array('AccountId' => $order[0]), array('Id')); $eml->optIn($contact->Email, 'API Import of existing EKM Powershop customers.'); $app->grpAssign($d[0]['Id'], $t2[0]['Id']); $app->grpAssign($d[0]['Id'], 123); // G4LOrdersDates } } } } } $found = false; /* * this is the end of the section that handles updating contacts with dup check */ } fclose($file);
/** * Subscribes to Infusionsoft list. Returns either "success" string or error message. * @return string */ function subscribe_infusionsoft($api_key, $app_id, $list_id, $email, $name = '', $last_name = '') { if (!function_exists('curl_init')) { return __('curl_init is not defined ', 'bloom'); } if (!class_exists('iSDK')) { require_once ET_BLOOM_PLUGIN_DIR . 'subscription/infusionsoft/isdk.php'; } try { $infusion_app = new iSDK(); $infusion_app->cfgCon($app_id, $api_key, 'throw'); } catch (iSDKException $e) { $error_message = $e->getMessage(); } if (empty($error_message)) { $contact_data = $infusion_app->dsQuery('Contact', 1, 0, array('Email' => $email), array('Id', 'Groups')); if (0 < count($contact_data)) { if (false === strpos($contact_data[0]['Groups'], $list_id)) { $infusion_app->grpAssign($contact_data[0]['Id'], $list_id); $error_message = 'success'; } else { $error_message = __('Already subscribed', 'bloom'); } } else { $contact_details = array('FirstName' => $name, 'LastName' => $last_name, 'Email' => $email); $new_contact_id = $infusion_app->dsAdd('Contact', $contact_details); $infusion_app->grpAssign($new_contact_id, $list_id); $error_message = 'success'; } } return $error_message; }
/** * Record an impression made by a optin fire * This function is called via PHP. * * @access public * @static * @return void */ function nnr_new_int_add_email_v1() { do_action('nnr_news_int_before_submission_add_email_v1'); // No First Name if (!isset($_POST['first_name'])) { $_POST['first_name'] = ''; } // No Last Name if (!isset($_POST['last_name'])) { $_POST['last_name'] = ''; } // Could not find Data ID if (!isset($_POST['data_id']) || $_POST['data_id'] == '') { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('Could not find Data ID.', $_POST['text_domain']))); die; } // Get all newsletter data for this data instance $data_manager = new NNR_Data_Manager_v1($_POST['table_name']); $data_instance = $data_manager->get_data_from_id($_POST['data_id']); $success_action = isset($data_instance['args']['newsletter']['success_action']) ? stripcslashes($data_instance['args']['newsletter']['success_action']) : 'message'; $success_mesage = isset($data_instance['args']['newsletter']['success_message']) ? stripcslashes($data_instance['args']['newsletter']['success_message']) : __('Welcome to the community!', $_POST['text_domain']); $success_url = isset($data_instance['args']['newsletter']['success_url']) ? stripcslashes($data_instance['args']['newsletter']['success_url']) : ''; // No Email if (!isset($_POST['email']) || $_POST['email'] == '') { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('No Email address provided.', $_POST['text_domain']))); die; } // Invalid Email Address if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('Invalid Email provided.', $_POST['text_domain']))); die; } // WordPress if ($_POST['type'] == 'wordpress') { $newsletter_db = new NNR_Newsletter_Integrations_Submission_v1($_POST['news_table_name']); $result = $newsletter_db->add_data(array('data_id' => $_POST['data_id'], 'email' => $_POST['email'], 'first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'])); if ($result) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } else { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'message' => __('We already have your email!', $_POST['text_domain']))); die; } } else { if ($_POST['type'] == 'mailchimp') { require_once dirname(dirname(__FILE__)) . '/services/mailchimp/MailChimp.php'; if (!isset($data_instance['args']['newsletter']['mailchimp']['api_key']) || $data_instance['args']['newsletter']['mailchimp']['api_key'] == '') { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('MailChimp account is not setup properly.', $_POST['text_domain']))); die; } if (!isset($data_instance['args']['newsletter']['mailchimp']['list']) || $data_instance['args']['newsletter']['mailchimp']['list'] == '') { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('MailChimp: No list specified.', $_POST['text_domain']))); die; } if (!isset($data_instance['args']['newsletter']['mailchimp']['optin'])) { $data_instance['args']['newsletter']['mailchimp']['optin'] = true; } $MailChimp = new NNR_New_Int_MailChimp($data_instance['args']['newsletter']['mailchimp']['api_key']); $result = $MailChimp->call('lists/subscribe', array('id' => $data_instance['args']['newsletter']['mailchimp']['list'], 'email' => array('email' => $_POST['email']), 'merge_vars' => array('FNAME' => $_POST['first_name'], 'LNAME' => $_POST['last_name']), 'double_optin' => $data_instance['args']['newsletter']['mailchimp']['optin'], 'update_existing' => false, 'replace_interests' => false, 'send_welcome' => true)); if ($result) { if (isset($result['email'])) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } else { if (isset($result['status']) && $result['status'] == 'error') { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $result['error'])); die; } } } else { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('Unable to subscribe.', $_POST['text_domain']))); die; } } else { if ($_POST['type'] == 'aweber') { require_once dirname(dirname(__FILE__)) . '/services/aweber/aweber_api.php'; $aweber = new AWeberAPI($data_instance['args']['newsletter']['aweber']['consumer_key'], $data_instance['args']['newsletter']['aweber']['consumer_secret']); try { $account = $aweber->getAccount($data_instance['args']['newsletter']['aweber']['access_key'], $data_instance['args']['newsletter']['aweber']['access_secret']); $list = $account->loadFromUrl('/accounts/' . $account->id . '/lists/' . $data_instance['args']['newsletter']['aweber']['list_id']); $subscriber = array('email' => $_POST['email'], 'name' => $_POST['first_name'] . ' ' . $_POST['last_name'], 'ip' => $_SERVER['REMOTE_ADDR']); $newSubscriber = $list->subscribers->create($subscriber); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } catch (AWeberAPIException $exc) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $exc->message)); die; } } else { if ($_POST['type'] == 'getresponse') { require_once dirname(dirname(__FILE__)) . '/services/getresponse/jsonRPCClient.php'; $api = new jsonRPCClient('http://api2.getresponse.com'); try { $api->add_contact($data_instance['args']['newsletter']['getresponse']['api_key'], array('campaign' => $data_instance['args']['newsletter']['getresponse']['campaign'], 'name' => $_POST['first_name'] . ' ' . $_POST['last_name'], 'email' => $_POST['email'])); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } catch (RuntimeException $exc) { $msg = $exc->getMessage(); $msg = substr($msg, 0, strpos($msg, ";")); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $msg)); die; } } else { if ($_POST['type'] == 'campaignmonitor') { require_once dirname(dirname(__FILE__)) . '/services/campaignmonitor/csrest_subscribers.php'; $wrap = new CS_REST_Subscribers($data_instance['args']['newsletter']['campaignmonitor']['list'], $data_instance['args']['newsletter']['campaignmonitor']['api_key']); // Check if subscriber is already subscribed $result = $wrap->get($_POST['email']); if ($result->was_successful()) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('You are already subscribed to this list.', $_POST['text_domain']))); die; } $result = $wrap->add(array('EmailAddress' => $_POST['email'], 'Name' => $_POST['first_name'] . ' ' . $_POST['last_name'], 'Resubscribe' => true)); if ($result->was_successful()) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } else { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $result->response->Message)); die; } } else { if ($_POST['type'] == 'madmimi') { require_once dirname(dirname(__FILE__)) . '/services/madmimi/MadMimi.class.php'; $mailer = new MadMimi($data_instance['args']['newsletter']['madmimi']['username'], $data_instance['args']['newsletter']['madmimi']['api_key']); try { // Check if user is already in list $result = $mailer->Memberships($_POST['email']); $lists = new SimpleXMLElement($result); if ($lists->list) { foreach ($lists->list as $l) { if ($l->attributes()->{'name'}->{0} == $data_instance['args']['newsletter']['madmimi']['list']) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'message' => __('You are already subscribed to this list.', $_POST['text_domain']))); die; } } } $result = $mailer->AddMembership($data_instance['args']['newsletter']['madmimi']['list'], $_POST['email'], array('first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'])); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } catch (RuntimeException $exc) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $msg)); die; } } else { if ($_POST['type'] == 'infusionsoft') { require_once dirname(dirname(__FILE__)) . '/services/infusionsoft/isdk.php'; try { $infusion_app = new iSDK(); $infusion_app->cfgCon($data_instance['args']['newsletter']['infusionsoft']['app_id'], $data_instance['args']['newsletter']['infusionsoft']['api_key'], 'throw'); } catch (iSDKException $e) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $e->getMessage())); die; } if (empty($error_message)) { $contact_data = $infusion_app->dsQuery('Contact', 1, 0, array('Email' => $_POST['email']), array('Id', 'Groups')); // Check if contact already exists if (0 < count($contact_data)) { if (false === strpos($contact_data[0]['Groups'], $data_instance['args']['newsletter']['infusionsoft']['list'])) { $infusion_app->grpAssign($contact_data[0]['Id'], $data_instance['args']['newsletter']['infusionsoft']['list']); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } else { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'message' => __('You are already subscribed to this list.', $_POST['text_domain']))); die; } } else { $new_contact_id = $infusion_app->dsAdd('Contact', array('FirstName' => $_POST['first_name'], 'LastName' => $_POST['last_name'], 'Email' => $_POST['email'])); $infusion_app->grpAssign($new_contact_id, $data_instance['args']['newsletter']['infusionsoft']['list']); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } } } else { if ($_POST['type'] == 'mymail') { // Check if plugin is activated if (!function_exists('mymail')) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('MyMail is not activated.', $_POST['text_domain']))); die; } // Add subscriber $subscriber_id = mymail('subscribers')->add(array('email' => $_POST['email'], 'firstname' => $_POST['first_name'], 'lastname' => $_POST['last_name']), false); // Add to List if (!is_wp_error($subscriber_id)) { mymail('subscribers')->assign_lists($subscriber_id, array($data_instance['args']['newsletter']['mymail']['list'])); echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } else { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'message' => __('You are already subscribed to this list.', $_POST['text_domain']))); die; } } else { if ($_POST['type'] == 'activecampaign') { require_once dirname(dirname(__FILE__)) . '/services/activecampaign/ActiveCampaign.class.php'; $ac = new ActiveCampaign($data_instance['args']['newsletter']['activecampaign']['app_url'], $data_instance['args']['newsletter']['activecampaign']['api_key']); if (!(int) $ac->credentials_test()) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('Unable to to connect to Active Campaign.', $_POST['text_domain']))); die; } // Add subscriber $contact_sync = $ac->api("contact/add", array("email" => $_POST['email'], "first_name" => $_POST['first_name'], "last_name" => $_POST['last_name'], "p[" . $data_instance['args']['newsletter']['activecampaign']['list'] . "]" => $data_instance['args']['newsletter']['activecampaign']['list'], "status[" . $data_instance['args']['newsletter']['activecampaign']['list'] . "]" => 1)); if ((int) $contact_sync->success) { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'check', 'success_action' => $success_action, 'url' => $success_url, 'message' => $success_mesage, 'conversion' => apply_filters('nnr_news_int_submission_success_v1', array('data_id' => $_POST['data_id'], 'table_name' => $_POST['stats_table_name'])))); die; } else { echo json_encode(array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => $contact_sync->error)); die; } } } } } } } } } } do_action('nnr_news_int_after_submission_add_email_v1'); echo json_encode(apply_filters('nnr_news_int_submission_add_email_v1', array('id' => $_POST['data_id'], 'status' => 'warning', 'message' => __('Unable to subscribe user. Newsletter not setup properly.', $_POST['text_domain'])))); die; // this is required to terminate immediately and return a proper response }