示例#1
0
 /**
  * Test UTM array preperation
  *
  * @since 0.0.7
  *
  * @covers ingot_get_utm();
  */
 public function testUTM()
 {
     $_GET['utm_referrer'] = 'twitter';
     $_GET['utm_campaign'] = 'a112357';
     $_GET['utm_medium'] = 'social';
     $utm = ingot_get_utm();
     $this->assertArrayHasKey('referrer', $utm);
     $this->assertArrayHasKey('campaign', $utm);
     $this->assertArrayHasKey('medium', $utm);
     $this->assertEquals('twitter', $utm['referrer']);
     $this->assertEquals('a112357', $utm['campaign']);
     $this->assertEquals('social', $utm['medium']);
 }
示例#2
0
/**
 * Get reffering source, if tracking from that source
 *
 * @since 0.0.7
 *
 * @return bool
 */
function ingot_get_refferer()
{
    $utm = ingot_get_utm();
    if (!empty($utm)) {
        $_utm = array_keys(array_flip($utm));
        foreach (ingot_get_referrers_to_track() as $allowed) {
            if (in_array($allowed, $_utm)) {
                return $allowed;
            }
        }
    }
    $refferer = false;
    if (!empty($_REQUEST['_wp_http_referer'])) {
        $refferer = wp_unslash($_REQUEST['_wp_http_referer']);
    } elseif (!empty($_SERVER['HTTP_REFERER'])) {
        $refferer = wp_unslash($_SERVER['HTTP_REFERER']);
    } else {
        return false;
    }
    $_parse = parse_url($refferer);
    if (is_array($_parse) && isset($_parse['host'])) {
        foreach (ingot_get_referrers_to_track() as $ref) {
            if (false !== strpos($_parse['host'], $ref)) {
                return $ref;
            }
        }
    }
    return false;
}