/** * Add the Daddy Analytics URL and token to the Salesforce API data * * @param array $merge_vars * @param array $form GF Form * @param array $entry GF Entry * @param array $feed Gravity Forms GFFeedAddon array * @param SforcePartnerClient|SforceEnterpriseClient $api API object, as fetched from GFSalesforce::get_api() * * @return array Modified $merge_vars */ function filter_api_merge_vars($merge_vars, $form, $entry, $feed, $api) { if (class_exists('GFSalesforce')) { GFSalesforce::log_debug('DA::filter_api_merge_vars() - Starting adding DA data to merge vars.'); } // Daddy Analytics only works on Leads. If the object type isn't a lead, // return the original data. if (isset($feed['meta']) && isset($feed['meta']['contact_object_name'])) { if ($feed['meta']['contact_object_name'] !== 'Lead') { GFSalesforce::log_debug('DA::filter_api_merge_vars() - Not a Lead object.'); return $merge_vars; } } // Get the $_POST data for the inserted fields $submitted_token = rgpost(esc_attr($this->token), true); $submitted_url = rgpost(esc_attr($this->url), true); // Use defaults if not set yet, somehow. $url_api_name = empty($this->url_api_name) ? 'DaddyAnalytics__DA_Web_to_Lead_URL__c' : $this->url_api_name; $token_api_name = empty($this->token_api_name) ? 'DaddyAnalytics__DA_Token__c' : $this->token_api_name; // Add the data to be pushed. $merge_vars[esc_attr($url_api_name)] = $submitted_url; $merge_vars[esc_attr($token_api_name)] = $submitted_token; if (class_exists('GFSalesforce')) { if (empty($this->url_api_name)) { GFSalesforce::log_error("DA::filter_api_merge_vars() - Daddy Analytics Web-to-Lead API Name is not set."); } if (empty($this->token_api_name)) { GFSalesforce::log_error("DA::filter_api_merge_vars() - Daddy Analytics Token API Name is not set."); } GFSalesforce::log_debug("DA::filter_api_merge_vars() - Added DA data to merge vars. Token: {$submitted_token} and Url: {$submitted_url}"); } return $merge_vars; }