| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- /**
- * Frontend events tracking.
- *
- * @since 6.0.0
- *
- * @package MonsterInsights
- * @author Chris Christoff
- */
- // Exit if accessed directly
- if ( ! defined( 'ABSPATH' ) ) {
- exit;
- }
- /**
- * Get frontend tracking options.
- *
- * This function is used to return an array of parameters
- * for the frontend_output() function to output. These are
- * generally dimensions and turned on GA features.
- *
- * @since 7.0.0
- * @access public
- *
- * @return array Array of the options to use.
- */
- function monsterinsights_tracking_script( ) {
- require_once plugin_dir_path( MONSTERINSIGHTS_PLUGIN_FILE ) . 'includes/frontend/class-tracking-abstract.php';
- $mode = is_preview() ? 'preview' : 'analytics';
- do_action( 'monsterinsights_tracking_before_' . $mode );
- do_action( 'monsterinsights_tracking_before', $mode );
- if ( $mode === 'preview' ) {
- require_once plugin_dir_path( MONSTERINSIGHTS_PLUGIN_FILE ) . 'includes/frontend/tracking/class-tracking-preview.php';
- $tracking = new MonsterInsights_Tracking_Preview();
- echo $tracking->frontend_output();
- } else {
- require_once plugin_dir_path( MONSTERINSIGHTS_PLUGIN_FILE ) . 'includes/frontend/tracking/class-tracking-analytics.php';
- $tracking = new MonsterInsights_Tracking_Analytics();
- echo $tracking->frontend_output();
- }
- do_action( 'monsterinsights_tracking_after_' . $mode );
- do_action( 'monsterinsights_tracking_after', $mode );
- }
- add_action( 'wp_head', 'monsterinsights_tracking_script', 6 );
- //add_action( 'login_head', 'monsterinsights_tracking_script', 6 );
- /**
- * Get frontend tracking options.
- *
- * This function is used to return an array of parameters
- * for the frontend_output() function to output. These are
- * generally dimensions and turned on GA features.
- *
- * @since 6.0.0
- * @access public
- *
- * @return array Array of the options to use.
- */
- function monsterinsights_events_tracking( ) {
- $events_mode = monsterinsights_get_option( 'events_mode', false );
- $track_user = monsterinsights_track_user();
- if ( $track_user && ( $events_mode === 'js' || $events_mode === 'php' ) ) {
- require_once plugin_dir_path( MONSTERINSIGHTS_PLUGIN_FILE ) . 'includes/frontend/events/class-analytics-events.php';
- new MonsterInsights_Analytics_Events();
- } else {
- // User is in the disabled group or events mode is off
- }
- }
- add_action( 'template_redirect', 'monsterinsights_events_tracking', 9 );
- /**
- * Add the UTM source parameters in the RSS feeds to track traffic.
- *
- * @since 6.0.0
- * @access public
- *
- * @param string $guid The link for the RSS feed.
- *
- * @return string The new link for the RSS feed.
- */
- function monsterinsights_rss_link_tagger( $guid ) {
- global $post;
- if ( monsterinsights_get_option( 'tag_links_in_rss', false ) ){
- if ( is_feed() ) {
- if ( monsterinsights_get_option( 'allow_anchor', false ) ) {
- $delimiter = '#';
- } else {
- $delimiter = '?';
- if ( strpos( $guid, $delimiter ) > 0 ) {
- $delimiter = '&';
- }
- }
- return $guid . $delimiter . 'utm_source=rss&utm_medium=rss&utm_campaign=' . urlencode( $post->post_name );
- }
- }
- return $guid;
- }
- add_filter( 'the_permalink_rss', 'monsterinsights_rss_link_tagger', 99 );
|