コード例 #1
0
 /**
  *  Generate tracked link
  */
 public static function analytics_track_links($params = array())
 {
     /* Merge POST & GET & @param vars into array variable */
     $params = array_merge($params, $_REQUEST);
     /* lead email or lead id required */
     if (!isset($params['id']) && !isset($params['email']) && !isset($params['cta_id'])) {
         $error['error'] = __('This endpoint requires either the \'id\' or the \'email\' or the \'cta_id\' parameter be set.', INBOUNDNOW_TEXT_DOMAIN);
         self::$data = $error;
         self::output(401);
     }
     /* a link to mask is required */
     if (!isset($params['url']) && !isset($params['url'])) {
         $error['error'] = __('This endpoint requires the \'url\' parameter be set.', INBOUNDNOW_TEXT_DOMAIN);
         self::$data = $error;
         self::output(401);
     }
     /* a tracking_id is required */
     if (!isset($params['tracking_id'])) {
         $error['error'] = __('This endpoint requires the \'tracking_id\' parameter be set.', INBOUNDNOW_TEXT_DOMAIN);
         self::$data = $error;
         self::output(401);
     }
     $args = $params;
     unset($args['token']);
     unset($args['key']);
     /* Set custom_data */
     if (isset($params['custom_data'])) {
         self::validate_parameter($params['custom_data'], 'custom_data', 'array');
         $args = array_merge($args, $params['custom_data']);
     }
     /* Set datetime */
     if (!isset($args['cta_id'])) {
         $args['datetime'] = current_time('mysql');
     }
     /* get tracked link */
     $tracked_link = self::analytics_get_tracking_code($args);
     return array('url' => $tracked_link);
 }
コード例 #2
0
 /**
  *  Loop through cta varaition html and create masked links
  *  @param HTML $varaition_html html of variation being processed
  *  @param ARRAY $selected_cta dataset of parent call to action
  *  @param INT $vid id of variation being processed
  */
 public static function prepare_tracked_links($variation_html, $selected_cta, $vid)
 {
     $doc = new DOMDocument();
     @$doc->loadHTML($variation_html);
     foreach ($doc->getElementsByTagName('a') as $anchor) {
         /* skip links with do-not-track in class */
         $class = $anchor->getAttribute('class');
         if (strstr($class, 'do-not-track')) {
             continue;
         }
         $href = $anchor->getAttribute('href');
         $link = Inbound_API::analytics_track_links(array('cta_id' => $selected_cta['id'], 'id' => isset($_COOKIE['wp_lead_id']) ? $_COOKIE['wp_lead_id'] : null, 'vid' => $vid, 'url' => $href, 'tracking_id' => __(sprintf('Call to Action Click (cta_id:%s) (vid:%s)', $selected_cta['id'], $vid), 'cta')));
         $variation_html = str_replace($href, $link['url'], $variation_html);
     }
     return $variation_html;
 }