/** * Returns all clients accessible with the current api key * * @return ArrayList[CMClient] * @throws CMError */ function Clients() { $interface = new CS_REST_General($this->apiKey); $result = $interface->get_clients(); $response = $this->parseResult($result); // Save each client $clients = new ArrayList(); foreach ($response as $clientData) { $clients->push(new CMClient($this->apiKey, $clientData)); } return $clients; }
/** * Get List from Campaign Monitor */ function cspv4_get_campaignmonitor_clients($apikey = null) { global $seed_cspv4; extract($seed_cspv4); $o = $seed_cspv4; $clients = array(); if ($o['emaillist'] == 'campaignmonitor' || defined('DOING_AJAX') && DOING_AJAX && isset($_GET['action']) && $_GET['action'] == 'seed_cspv4_campaingmonitor_client') { $clients = maybe_unserialize(get_transient('seed_cspv4_campaignmonitor_clients')); if (empty($clients)) { //var_dump('miss'); if (class_exists('CS_REST_General')) { //trigger_error("Duplicate: Another Campaign Moniter client library is already in scope.", E_USER_WARNING); } else { require_once SEED_CSPV4_PLUGIN_PATH . 'extentions/campaignmonitor/campaign_monitor/csrest_general.php'; } if (!isset($apikey) && isset($campaignmonitor_api_key)) { $apikey = $campaignmonitor_api_key; } if (empty($apikey)) { return array(); } $api = new CS_REST_General($apikey); $response = $api->get_clients(); if ($response->was_successful()) { foreach ($response->response as $k => $v) { $clients[$v->ClientID] = $v->Name; } if (!empty($clients)) { set_transient('seed_cspv4_campaignmonitor_clients', serialize($clients), 86400); } } else { $clients['false'] = __("Unable to load Campaign Monitor clients", 'seedprod'); } } } return $clients; }
/** * Processes campaignmonitor client field. Called by AJAX script. */ public static function field_campaignmonitor_client_ajax() { if (!class_exists(CS_REST_General)) { require CH_Manager::$plugin_dir . 'lib/campaign_monitor/csrest_general.php'; } $api_key = $_POST['apikey']; $cmapi = new CS_REST_General($api_key); $clients = $cmapi->get_clients(); if (!$clients->was_successful()) { die; } $value = ''; if (!empty($_POST['value'])) { $value = $_POST['value']; } $output = ''; $clients = $clients->response; if (is_array($clients)) { foreach ($clients as $client) { $selected = ''; if ($client->ClientID == $value) { $selected = ' selected="selected"'; } $output .= '<option value="' . esc_attr($client->ClientID) . '"' . $selected . '>' . esc_html(trim($client->Name)) . ' </option>'; } } echo $output; die; }
public static function edit_page() { ?> <style> .campaignmonitor_col_heading{padding-bottom:2px; border-bottom: 1px solid #ccc; font-weight: bold;} .campaignmonitor_field_cell {padding: 6px 17px 0 0; margin-right:15px;} .left_header{float:left; width:200px;} .margin_vertical_10{margin: 10px 0;} #campaignmonitor_resubscribe_warning{padding-left: 5px; padding-bottom:4px; font-size: 10px;} .gfield_required{color:red;} .feeds_validation_error{ background-color:#FFDFDF;} .feeds_validation_error td{ margin-top:4px; margin-bottom:6px; padding-top:6px; padding-bottom:6px; border-top:1px dotted #C89797; border-bottom:1px dotted #C89797} </style> <script type="text/javascript"> var form = Array(); </script> <div class="wrap"> <img alt="<?php _e("Campaign Monitor", "gravityformsmailchimp"); ?> " style="margin: 15px 7px 0pt 0pt; float: left;" src="<?php echo self::get_base_url(); ?> /images/campaignmonitor_wordpress_icon_32.png"/> <h2><?php _e("Campaign Monitor Feed", "gravityformsmailchimp"); ?> </h2> <?php //ensures valid credentials were entered in the settings page if (!self::is_valid_key()) { ?> <tr><td colspan="2"><?php echo sprintf(__("We are unable to login to Campaign Monitor with the provided API key. Please make sure you have entered a valid API key in the %sSettings Page%s", "gravityformscampaignmonitor"), "<a href='?page=gf_settings&addon=Email+Marketing'>", "</a>"); ?> </td></tr> <?php return; } //getting setting id (0 when creating a new one) $id = !empty($_POST["campaignmonitor_setting_id"]) ? $_POST["campaignmonitor_setting_id"] : absint($_GET["id"]); $config = empty($id) ? array("is_active" => true) : GFCampaignMonitorData::get_feed($id); if (!isset($config["meta"])) { $config["meta"] = array(); } //updating meta information if (rgpost("gf_campaignmonitor_submit")) { list($client_id, $client_name) = explode("|:|", stripslashes($_POST["gf_campaignmonitor_client"])); $config["meta"]["client_id"] = $client_id; $config["meta"]["client_name"] = $client_name; list($list_id, $list_name) = explode("|:|", stripslashes($_POST["gf_campaignmonitor_list"])); $config["meta"]["contact_list_id"] = $list_id; $config["meta"]["contact_list_name"] = $list_name; $config["form_id"] = absint($_POST["gf_campaignmonitor_form"]); $merge_vars = self::get_custom_fields($list_id); $field_map = array(); foreach ($merge_vars as $var) { $field_name = "campaignmonitor_map_field_" . self::get_field_key($var); $mapped_field = stripslashes($_POST[$field_name]); if (!empty($mapped_field)) { $field_map[self::get_field_key($var)] = $mapped_field; } } $config["meta"]["field_map"] = $field_map; $config["meta"]["resubscribe"] = rgpost("campaignmonitor_resubscribe") ? true : false; $config["meta"]["optin_enabled"] = rgpost("campaignmonitor_optin_enable") ? true : false; if ($config["meta"]["optin_enabled"]) { $config["meta"]["optin_field_id"] = rgpost("campaignmonitor_optin_field_id"); $config["meta"]["optin_operator"] = rgpost("campaignmonitor_optin_operator"); $config["meta"]["optin_value"] = rgpost("campaignmonitor_optin_value"); } $is_valid = !empty($field_map["email"]); if ($is_valid) { $id = GFCampaignMonitorData::update_feed($id, $config["form_id"], $config["is_active"], $config["meta"]); ?> <div class="updated fade" style="padding:6px"><?php echo sprintf(__("Feed Updated. %sback to list%s", "gravityformscampaignmonitor"), "<a href='?page=gf_campaignmonitor'>", "</a>"); ?> </div> <input type="hidden" name="campaignmonitor_setting_id" value="<?php echo $id; ?> "/> <?php } else { ?> <div class="error" style="padding:6px"><?php echo __("Feed could not be updated. Please enter all required information below.", "gravityformscampaignmonitor"); ?> </div> <?php } } if (empty($merge_vars)) { //getting merge vars from selected list (if one was selected) $merge_vars = empty($config["meta"]["contact_list_id"]) ? array() : self::get_custom_fields($config["meta"]["contact_list_id"]); } ?> <form method="post" action=""> <input type="hidden" name="campaignmonitor_setting_id" value="<?php echo $id; ?> "/> <div class="margin_vertical_10"> <?php self::include_api(); $api = new CS_REST_General(self::get_api_key()); //getting all clients $response = $api->get_clients(); if (!$response->was_successful()) { _e("Could not get client list from Campaign Monitor.", "gravityformscampaignmonitor"); } else { $clients = $response->response; $client_id = self::get_client_id(); if (empty($client_id)) { $client_id = $config["meta"]["client_id"]; ?> <label for="gf_campaignmonitor_client" class="left_header"><?php _e("Client", "gravityformscampaignmonitor"); ?> <?php gform_tooltip("campaignmonitor_client"); ?> </label> <select id="gf_campaignmonitor_client" name="gf_campaignmonitor_client" onchange="SelectClient(jQuery(this).val());"> <option value=""><?php _e("Select a Client", "gravityformscampaignmonitor"); ?> </option> <?php foreach ($clients as $client) { $selected = $client->ClientID == $client_id ? "selected='selected'" : ""; ?> <option value="<?php echo esc_attr($client->ClientID) . "|:|" . esc_attr($client->Name); ?> " <?php echo $selected; ?> ><?php echo esc_html($client->Name); ?> </option> <?php } ?> </select> <img src="<?php echo self::get_base_url(); ?> /images/loading.gif" id="campaignmonitor_wait_client" style="display: none;"/> <?php } else { $client_name = ""; foreach ($clients as $client) { if ($client->ClientID == $client_id) { $client_name = $client->Name; } } if (empty($client_name)) { echo sprintf(__("Your API Client ID is invalid. You can change it in the %ssettings page%s", "gravityformscampaignmonitor"), "<a href='?page=gf_settings&addon=Campaign+Monitor'>", "</a>"); $client_id = 0; } else { ?> <input type="hidden" id="gf_campaignmonitor_client" name="gf_campaignmonitor_client" value="<?php echo $client_id . "|:|" . $client_name; ?> " /> <?php } } } ?> </div> <div id="gf_campaignmonitor_list_container" class="margin_vertical_10" <?php echo empty($client_id) ? "style='display:none;'" : ""; ?> > <label for="gf_campaignmonitor_list" class="left_header"><?php _e("Contact list", "gravityformscampaignmonitor"); ?> <?php gform_tooltip("campaignmonitor_contact_list"); ?> </label> <select id="gf_campaignmonitor_list" name="gf_campaignmonitor_list" onchange="SelectList(jQuery(this).val());"> <?php if (!empty($client_id)) { $lists = self::get_lists($client_id, $config["meta"]["contact_list_id"]); echo $lists; } ?> </select> </div> <div id="campaignmonitor_form_container" valign="top" class="margin_vertical_10" <?php echo empty($client_id) || empty($config["meta"]["contact_list_id"]) ? "style='display:none;'" : ""; ?> > <label for="gf_campaignmonitor_form" class="left_header"><?php _e("Gravity Form", "gravityformscampaignmonitor"); ?> <?php gform_tooltip("campaignmonitor_gravity_form"); ?> </label> <select id="gf_campaignmonitor_form" name="gf_campaignmonitor_form" onchange="SelectForm(jQuery('#gf_campaignmonitor_list').val(), jQuery(this).val());"> <option value=""><?php _e("Select a Form", "gravityformscampaignmonitor"); ?> </option> <?php $forms = RGFormsModel::get_forms(); foreach ($forms as $form) { $selected = absint($form->id) == $config["form_id"] ? "selected='selected'" : ""; ?> <option value="<?php echo absint($form->id); ?> " <?php echo $selected; ?> ><?php echo esc_html($form->title); ?> </option> <?php } ?> </select> <img src="<?php echo self::get_base_url(); ?> /images/loading.gif" id="campaignmonitor_wait_form" style="display: none;"/> </div> <div id="campaignmonitor_field_group" valign="top" <?php echo empty($client_id) || empty($config["meta"]["contact_list_id"]) || empty($config["form_id"]) ? "style='display:none;'" : ""; ?> > <div id="campaignmonitor_field_container" valign="top" class="margin_vertical_10" > <label for="campaignmonitor_fields" class="left_header"><?php _e("Map Fields", "gravityformscampaignmonitor"); ?> <?php gform_tooltip("campaignmonitor_map_fields"); ?> </label> <div id="campaignmonitor_field_list"> <?php if (!empty($config["form_id"])) { //getting list of all Campaign Monitor merge variables for the selected contact list if (empty($merge_vars)) { $merge_vars = $api->listMergeVars($list_id); } //getting field map UI echo self::get_field_mapping($config, $config["form_id"], $merge_vars); //getting list of selection fields to be used by the optin $form_meta = RGFormsModel::get_form_meta($config["form_id"]); $selection_fields = GFCommon::get_selection_fields($form_meta, rgar($config["meta"], "optin_field_id")); } ?> </div> </div> <div id="campaignmonitor_optin_container" valign="top" class="margin_vertical_10"> <label for="campaignmonitor_optin" class="left_header"><?php _e("Opt-In Condition", "gravityformscampaignmonitor"); ?> <?php gform_tooltip("campaignmonitor_optin_condition"); ?> </label> <div id="campaignmonitor_optin"> <table> <tr> <td> <input type="checkbox" id="campaignmonitor_optin_enable" name="campaignmonitor_optin_enable" value="1" onclick="if(this.checked){jQuery('#campaignmonitor_optin_condition_field_container').show('slow');} else{jQuery('#campaignmonitor_optin_condition_field_container').hide('slow');}" <?php echo rgar($config["meta"], "optin_enabled") ? "checked='checked'" : ""; ?> /> <label for="campaignmonitor_optin_enable"><?php _e("Enable", "gravityformscampaignmonitor"); ?> </label> </td> </tr> <tr> <td> <div id="campaignmonitor_optin_condition_field_container" <?php echo !rgar($config["meta"], "optin_enabled") ? "style='display:none'" : ""; ?> > <div id="campaignmonitor_optin_condition_fields" <?php echo empty($selection_fields) ? "style='display:none'" : ""; ?> > <?php _e("Export to Campaign Monitor if ", "gravityformscampaignmonitor"); ?> <select id="campaignmonitor_optin_field_id" name="campaignmonitor_optin_field_id" class='optin_select' onchange='jQuery("#campaignmonitor_optin_value").html(GetFieldValues(jQuery(this).val(), "", 20));'><?php echo $selection_fields; ?> </select> <select id="campaignmonitor_optin_operator" name="campaignmonitor_optin_operator" /> <option value="is" <?php echo rgar($config["meta"], "optin_operator") == "is" ? "selected='selected'" : ""; ?> ><?php _e("is", "gravityformscampaignmonitor"); ?> </option> <option value="isnot" <?php echo rgar($config["meta"], "optin_operator") == "isnot" ? "selected='selected'" : ""; ?> ><?php _e("is not", "gravityformscampaignmonitor"); ?> </option> </select> <select id="campaignmonitor_optin_value" name="campaignmonitor_optin_value" class='optin_select'> </select> </div> <div id="campaignmonitor_optin_condition_message" <?php echo !empty($selection_fields) ? "style='display:none'" : ""; ?> > <?php _e("To create an Opt-In condition, your form must have a drop down, checkbox or multiple choice field.", "gravityform"); ?> </div> </div> </td> </tr> </table> </div> <script type="text/javascript"> <?php if (!empty($config["form_id"])) { ?> //creating Javascript form object form = <?php echo GFCommon::json_encode($form_meta); ?> ; //initializing drop downs jQuery(document).ready(function(){ var selectedField = "<?php echo str_replace('"', '\\"', rgar($config["meta"], "optin_field_id")); ?> "; var selectedValue = "<?php echo str_replace('"', '\\"', rgar($config["meta"], "optin_value")); ?> "; SetOptin(selectedField, selectedValue); }); <?php } ?> </script> </div> <div id="campaignmonitor_options_container" valign="top" class="margin_vertical_10"> <label for="campaignmonitor_options" class="left_header"><?php _e("Options", "gravityformscampaignmonitor"); ?> </label> <div id="campaignmonitor_options"> <table> <tr><td><input type="checkbox" name="campaignmonitor_resubscribe" id="campaignmonitor_resubscribe" value="1" <?php echo rgar($config["meta"], "resubscribe") ? "checked='checked'" : ""; ?> onclick="var element = jQuery('#campaignmonitor_resubscribe_warning'); if(this.checked){element.show('slow');} else{element.hide('slow');}"/> <?php _e("Resubscribe", "gravityformscampaignmonitor"); ?> <?php gform_tooltip("campaignmonitor_resubscribe"); ?> <br/><span id='campaignmonitor_resubscribe_warning' <?php echo !rgar($config["meta"], "resubscribe") ? "style='display:none'" : ""; ?> >(<?php _e("This option will re-subscribe users that have been unsubscribed. Use with caution and only when appropriate.", "gravityformscampaignmonitor"); ?> )</span></td></tr> </table> </div> </div> <div id="campaignmonitor_submit_container" class="margin_vertical_10"> <input type="submit" name="gf_campaignmonitor_submit" value="<?php echo empty($id) ? __("Save", "gravityformscampaignmonitor") : __("Update", "gravityformscampaignmonitor"); ?> " class="button-primary"/> <input type="button" value="<?php _e("Cancel", "gravityformscampaignmonitor"); ?> " class="button" onclick="javascript:document.location='admin.php?page=gf_campaignmonitor'" /> </div> </div> </form> </div> <script type="text/javascript"> function SelectClient(clientId){ jQuery("#gf_campaignmonitor_list_container").slideUp(); SelectList(); if(!clientId) return; jQuery("#campaignmonitor_wait_client").show(); var mysack = new sack("<?php bloginfo('wpurl'); ?> /wp-admin/admin-ajax.php" ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "gf_select_campaignmonitor_client" ); mysack.setVar( "gf_select_campaignmonitor_client", "<?php echo wp_create_nonce("gf_select_campaignmonitor_client"); ?> " ); mysack.setVar( "client_id", clientId); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() {jQuery("#campaignmonitor_wait_client").hide(); alert('<?php _e("Ajax error while selecting a client", "gravityformscampaignmonitor"); ?> ' )}; mysack.runAJAX(); return true; } function EndSelectClient(lists){ if(lists){ jQuery("#gf_campaignmonitor_list").html(lists); jQuery("#gf_campaignmonitor_list_container").slideDown(); } else{ jQuery("#gf_campaignmonitor_list_container").slideUp(); jQuery("#campaignmonitor_list").html(""); } jQuery("#campaignmonitor_wait_client").hide(); } function SelectList(listId){ EndSelectForm(""); if(listId){ jQuery("#campaignmonitor_form_container").slideDown(); jQuery("#gf_campaignmonitor_form").val(""); } else{ jQuery("#campaignmonitor_form_container").slideUp(); } } function SelectForm(listId, formId){ if(!formId){ jQuery("#campaignmonitor_field_group").slideUp(); return; } jQuery("#campaignmonitor_wait_form").show(); jQuery("#campaignmonitor_field_group").slideUp(); var mysack = new sack("<?php bloginfo('wpurl'); ?> /wp-admin/admin-ajax.php" ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "gf_select_campaignmonitor_form" ); mysack.setVar( "gf_select_campaignmonitor_form", "<?php echo wp_create_nonce("gf_select_campaignmonitor_form"); ?> " ); mysack.setVar( "list_id", listId); mysack.setVar( "form_id", formId); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() {jQuery("#campaignmonitor_wait_form").hide(); alert('<?php _e("Ajax error while selecting a form", "gravityformscampaignmonitor"); ?> ' )}; mysack.runAJAX(); return true; } function SetOptin(selectedField, selectedValue){ //load form fields jQuery("#campaignmonitor_optin_field_id").html(GetSelectableFields(selectedField, 20)); var optinConditionField = jQuery("#campaignmonitor_optin_field_id").val(); if(optinConditionField){ jQuery("#campaignmonitor_optin_condition_message").hide(); jQuery("#campaignmonitor_optin_condition_fields").show(); jQuery("#campaignmonitor_optin_value").html(GetFieldValues(optinConditionField, selectedValue, 20)); } else{ jQuery("#campaignmonitor_optin_condition_message").show(); jQuery("#campaignmonitor_optin_condition_fields").hide(); } } function EndSelectForm(fieldList, form_meta){ //setting global form object form = form_meta; if(fieldList){ SetOptin("",""); jQuery("#campaignmonitor_field_list").html(fieldList); jQuery("#campaignmonitor_field_group").slideDown(); } else{ jQuery("#campaignmonitor_field_group").slideUp(); jQuery("#campaignmonitor_field_list").html(""); } jQuery("#campaignmonitor_wait_form").hide(); } function GetFieldValues(fieldId, selectedValue, labelMaxCharacters){ if(!fieldId) return ""; var str = ""; var field = GetFieldById(fieldId); if(!field || !field.choices) return ""; var isAnySelected = false; for(var i=0; i<field.choices.length; i++){ var fieldValue = field.choices[i].value ? field.choices[i].value : field.choices[i].text; var isSelected = fieldValue == selectedValue; var selected = isSelected ? "selected='selected'" : ""; if(isSelected) isAnySelected = true; str += "<option value='" + fieldValue.replace(/'/g, "'") + "' " + selected + ">" + TruncateMiddle(field.choices[i].text, labelMaxCharacters) + "</option>"; } if(!isAnySelected && selectedValue){ str += "<option value='" + selectedValue.replace("'", "'") + "' selected='selected'>" + TruncateMiddle(selectedValue, labelMaxCharacters) + "</option>"; } return str; } function GetFieldById(fieldId){ for(var i=0; i<form.fields.length; i++){ if(form.fields[i].id == fieldId) return form.fields[i]; } return null; } function TruncateMiddle(text, maxCharacters){ if(text.length <= maxCharacters) return text; var middle = parseInt(maxCharacters / 2); return text.substr(0, middle) + "..." + text.substr(text.length - middle, middle); } function GetSelectableFields(selectedFieldId, labelMaxCharacters){ var str = ""; var inputType; for(var i=0; i<form.fields.length; i++){ fieldLabel = form.fields[i].adminLabel ? form.fields[i].adminLabel : form.fields[i].label; inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type; if(inputType == "checkbox" || inputType == "radio" || inputType == "select"){ var selected = form.fields[i].id == selectedFieldId ? "selected='selected'" : ""; str += "<option value='" + form.fields[i].id + "' " + selected + ">" + TruncateMiddle(fieldLabel, labelMaxCharacters) + "</option>"; } } return str; } </script> <?php }
<?php require_once '../csrest_general.php'; $wrap = new CS_REST_General('Your API Key'); $result = $wrap->get_clients(); echo "Result of /api/v3/clients\n<br />"; if ($result->was_successful()) { echo "Got clients\n<br /><pre>"; var_dump($result->response); } else { echo 'Failed with code ' . $result->http_status_code . "\n<br /><pre>"; var_dump($result->response); } echo '</pre>';
/** * Retrieval method for getting clients. * * @since 2.0.0 * * @param array $args Args to be passed for list retrieval. * @param string $client_id The client ID to check for selection. * @param string $list_id The list ID to target. * @param string $uniqid The account ID to target. * @param string $optin_id The optin ID to target. * * @return string|WP_Error Output of the clients or WP_Error. */ public function get_clients($args = array(), $client_id = '', $list_id = '', $uniqid = '', $optin_id = '') { if (!$this->api) { if (isset($args['access']) && isset($args['refresh']) && isset($args['expires'])) { $this->api['access'] = $args['access']; $this->api['refresh'] = $args['refresh']; $this->api['expires'] = $args['expires']; } } // If needed, get a new access token. if (isset($this->api['expires']) && isset($this->api['refresh']) && time() > $this->api['expires']) { $this->api['access'] = $this->refresh_access_token($uniqid, $this->api['refresh']); } // Possibly get data via OAuth or API key for backwards compat. if (isset($this->api['access']) && isset($this->api['refresh'])) { $auth = array('access_token' => $this->api['access'], 'refresh_token' => $this->api['refresh']); } else { if (isset($args['api'])) { $auth = array('api_key' => $args['api']); } else { $auth = array(); } } $api = new CS_REST_General($auth); $clients = $api->get_clients(); $output = ''; $output .= '<div class="optin-monster-field-box optin-monster-provider-clients optin-monster-clear">'; $output .= '<p class="optin-monster-field-wrap"><label for="optin-monster-client-list">' . __('Campaign Monitor Client', 'optin-monster') . '</label><br />'; $output .= '<select id="optin-monster-client-list" name="optin_monster[provider_client]">'; foreach ($clients->response as $client) { $output .= '<option value="' . $client->ClientID . '"' . selected($client_id, $client->ClientID, false) . '>' . $client->Name . '</option>'; } $output .= '</select>'; $output .= '</p>'; $output .= '</div>'; // Get the lists for the first client. $this->api['client'] = !empty($client_id) ? $client_id : $clients->response[0]->ClientID; $output .= $this->get_lists($args, $list_id, $uniqid, $optin_id); return $output; }
function tfuse_ajax_newsletter_save_campaignmonitor_api_key() { #CampaignMonitor tf_can_ajax(); require_once dirname(__FILE__) . '/library/csrest_general.php'; $api_key = $this->request->POST('api_key'); $api = new CS_REST_General($api_key); $result = $api->get_clients(); if ($result->http_status_code == 401) { tfjecho(array('status' => -1, 'message' => __('API key is invalid.', 'tfuse'))); } else { $this->model->set_cm_key($api_key); tfjecho(array('status' => 1)); } die; }
/** * Get all Campaign Monitor Lists and display in settings * */ public function get_campaignmonitor_lists() { $lists = ''; $clients = ''; if (isset($_POST['api_key']) && $_POST['api_key'] != '') { require_once( 'includes/campaignmonitor/csrest_general.php'); require_once( 'includes/campaignmonitor/csrest_clients.php'); $auth = array('api_key' => sanitize_text_field( $_POST['api_key'] )); $wrap = new CS_REST_General($auth); $result = $wrap->get_clients(); if ($result->was_successful()) { foreach ($result->response as $client) { $clients .= '<option value="' . $client->ClientID . '">' . $client->Name . '</option>'; } if (isset($_POST['client']) && $_POST['client'] != '') { $clients = ''; foreach ($result->response as $client) { if ($_POST['client'] == $client->ClientID) { $clients .= '<option value="' . $client->ClientID . '" selected="selected">' . $client->Name . '</option>'; } else { $clients .= '<option value="' . $client->ClientID . '">' . $client->Name . '</option>'; } } } if (isset($_POST['client']) && $_POST['client'] != '') { $client_id = sanitize_text_field( $_POST['client'] ); } else { $client_id = $result->response[0]->ClientID; } $wrap = new CS_REST_Clients($client_id, sanitize_text_field( $_POST['api_key']) ); $result = $wrap->get_lists(); if ($result->was_successful()) { foreach ($result->response as $list) { $lists .= '<option value="' . $list->ListID . '">' . $list->Name . '</option>'; } if (isset($_POST['list']) && $_POST['list'] != '') { $lists = ''; foreach ($result->response as $list) { if ($_POST['list'] == $list->ListID) { $lists .= '<option value="' . $list->ListID . '" selected="selected">' . $list->Name . '</option>'; } else { $lists .= '<option value="' . $list->ListID . '">' . $list->Name . '</option>'; } } } } } } echo json_encode(array('clients' => $clients, 'lists' => $lists)); die(); // this is required to terminate immediately and return a proper response }
/** * Render the markup for service specific fields. * * @since 1.5.4 * @param string $account The name of the saved account. * @param object $settings Saved module settings. * @return array { * @type bool|string $error The error message or false if no error. * @type string $html The field markup. * } */ public function render_fields($account, $settings) { $post_data = FLBuilderModel::get_post_data(); $account_data = $this->get_account_data($account); $api = new CS_REST_General($account_data); $result = $api->get_clients(); $response = array('error' => false, 'html' => ''); if ($result->was_successful()) { if (!isset($post_data['client'])) { $response['html'] .= $this->render_client_field($result, $settings); } $response['html'] .= $this->render_list_field($account_data, $settings); } else { $response['error'] = __('Error: Please check your API key.', 'fl-builder'); } return $response; }
//define api_key and cliend_id that I get by my subscription to the API define("API_KEY", "f955097a9e86fcab60f3bbbdcf97e6b9"); define("CLIENT_ID", "df0a4e647a3d6d224f4a1cb95ed406be"); //Check if there are parameters in the server url //If the parameter req(request) isset, we have a request from the client //Mainly Ajax requests $req = isset($_GET["req"]) ? $_GET["req"] : ""; $auth = array('api_key' => API_KEY); //An if statement checks which action has server to perform //according to the parameters of the url if ($req == "viewLists") { //View available client's Lists //Get the appropriate wrapper to check //if there is the given CLIENT_ID $wrap_general = new CS_REST_General($auth); $clients = $wrap_general->get_clients(); foreach ($clients->response as $client) { if (CLIENT_ID == $client->ClientID) { $client_id = CLIENT_ID; break; } else { echo "There is not such a client id!"; } } //If client found if (isset($client_id)) { //Get the appropriate wrapper to get the available client's Lists $wrap_client = new CS_REST_Clients($client_id, $auth); $lists = $wrap_client->get_lists(); //JSON manipiulation of the response $output = "[";
/** * Return the clients. * * @return mixed */ private function get_clients() { $clients = GFCache::get('campaignmonitor_clients'); if (!$clients) { $this->include_api(); $api = new CS_REST_General($this->get_key()); //getting all clients $response = $api->get_clients(); if ($response->http_status_code == 200) { $clients = $response->response; GFCache::set('campaignmonitor_clients', $clients); } } return $clients; }
protected function getClientApiId() { require_once 'lib/csrest_general.php'; $wrap = new CS_REST_General(array('api_key' => $this->getConfig('api_key'))); $result = $wrap->get_clients(); if ($result->was_successful()) { $res = array(); foreach ($result->response as $r) { $res[$r->ClientID] = $r->Name; } return $res; } $this->getDi()->errorLogTable->log('Campaignmonitor ERROR: Bad API Key'); }
/** * Get all Campaign Monitor Lists and display in settings * * @access public * @return void */ function nnr_new_int_get_campaignmonitor_lists_v1() { do_action('nnr_news_int_before_get_campaignmonitor_lists_v1'); $lists = ''; $clients = ''; if (isset($_POST['api_key']) && $_POST['api_key'] != '') { require_once dirname(dirname(__FILE__)) . '/services/campaignmonitor/csrest_general.php'; require_once dirname(dirname(__FILE__)) . '/services/campaignmonitor/csrest_clients.php'; $auth = array('api_key' => $_POST['api_key']); $wrap = new CS_REST_General($auth); $result = $wrap->get_clients(); if ($result->was_successful()) { foreach ($result->response as $client) { $clients .= '<option value="' . $client->ClientID . '">' . $client->Name . '</option>'; } if (isset($_POST['client']) && $_POST['client'] != '') { $clients = ''; foreach ($result->response as $client) { if ($_POST['client'] == $client->ClientID) { $clients .= '<option value="' . $client->ClientID . '" selected="selected">' . $client->Name . '</option>'; } else { $clients .= '<option value="' . $client->ClientID . '">' . $client->Name . '</option>'; } } } if (isset($_POST['client']) && $_POST['client'] != '') { $client_id = $_POST['client']; } else { $client_id = $result->response[0]->ClientID; } $wrap = new CS_REST_Clients($client_id, $_POST['api_key']); $result = $wrap->get_lists(); if ($result->was_successful()) { foreach ($result->response as $list) { $lists .= '<option value="' . $list->ListID . '">' . $list->Name . '</option>'; } if (isset($_POST['list']) && $_POST['list'] != '') { $lists = ''; foreach ($result->response as $list) { if ($_POST['list'] == $list->ListID) { $lists .= '<option value="' . $list->ListID . '" selected="selected">' . $list->Name . '</option>'; } else { $lists .= '<option value="' . $list->ListID . '">' . $list->Name . '</option>'; } } } } } } do_action('nnr_news_int_after_get_campaignmonitor_lists_v1'); echo json_encode(apply_filters('nnr_news_int_get_campaignmonitor_lists_v1', array('clients' => $clients, 'lists' => $lists))); die; // this is required to terminate immediately and return a proper response }