Esempio n. 1
0
 /**
  * Styles & Scripts conditional loading
  *
  * @param
  *            $hook
  */
 public function load_styles_scripts()
 {
     $lang = get_bloginfo('language');
     $lang = explode('-', $lang);
     $lang = $lang[0];
     /*
      * Item reports Styles & Scripts
      */
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_front']) && $this->gadwp->config->options['frontend_item_reports']) {
         wp_enqueue_style('gadwp-nprogress', GADWP_URL . 'common/nprogress/nprogress.css', null, GADWP_CURRENT_VERSION);
         wp_enqueue_style('gadwp-frontend-item-reports', GADWP_URL . 'front/css/item-reports.css', null, GADWP_CURRENT_VERSION);
         $country_codes = GADWP_Tools::get_countrycodes();
         if ($this->gadwp->config->options['ga_target_geomap'] && isset($country_codes[$this->gadwp->config->options['ga_target_geomap']])) {
             $region = $this->gadwp->config->options['ga_target_geomap'];
         } else {
             $region = false;
         }
         wp_enqueue_style("wp-jquery-ui-dialog");
         if (!wp_script_is('googlejsapi')) {
             wp_register_script('googlejsapi', 'https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22visualization%22%2C%22version%22%3A%221%22%2C%22language%22%3A%22' . $lang . '%22%2C%22packages%22%3A%5B%22corechart%22%2C%20%22table%22%2C%20%22orgchart%22%2C%20%22geochart%22%5D%7D%5D%7D%27', array(), null);
         }
         wp_enqueue_script('gadwp-nprogress', GADWP_URL . 'common/nprogress/nprogress.js', array('jquery'), GADWP_CURRENT_VERSION);
         wp_enqueue_script('gadwp-frontend-item-reports', GADWP_URL . 'common/js/reports.js', array('gadwp-nprogress', 'googlejsapi', 'jquery', 'jquery-ui-dialog'), GADWP_CURRENT_VERSION);
         /* @formatter:off */
         wp_localize_script('gadwp-frontend-item-reports', 'gadwpItemData', array('ajaxurl' => admin_url('admin-ajax.php'), 'security' => wp_create_nonce('gadwp_frontend_item_reports'), 'dateList' => array('today' => __("Today", 'google-analytics-dashboard-for-wp'), 'yesterday' => __("Yesterday", 'google-analytics-dashboard-for-wp'), '7daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 7), '14daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 14), '30daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 30), '90daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 90), '365daysAgo' => sprintf(_n("%s Year", "%s Years", 1, 'google-analytics-dashboard-for-wp'), __('One', 'google-analytics-dashboard-for-wp')), '1095daysAgo' => sprintf(_n("%s Year", "%s Years", 3, 'google-analytics-dashboard-for-wp'), __('Three', 'google-analytics-dashboard-for-wp'))), 'reportList' => array('uniquePageviews' => __("Unique Views", 'google-analytics-dashboard-for-wp'), 'users' => __("Users", 'google-analytics-dashboard-for-wp'), 'organicSearches' => __("Organic", 'google-analytics-dashboard-for-wp'), 'pageviews' => __("Page Views", 'google-analytics-dashboard-for-wp'), 'visitBounceRate' => __("Bounce Rate", 'google-analytics-dashboard-for-wp'), 'locations' => __("Location", 'google-analytics-dashboard-for-wp'), 'referrers' => __("Referrers", 'google-analytics-dashboard-for-wp'), 'searches' => __("Searches", 'google-analytics-dashboard-for-wp'), 'trafficdetails' => __("Traffic", 'google-analytics-dashboard-for-wp'), 'technologydetails' => __("Technology", 'google-analytics-dashboard-for-wp')), 'i18n' => array(__("A JavaScript Error is blocking plugin resources!", 'google-analytics-dashboard-for-wp'), __("Traffic Mediums", 'google-analytics-dashboard-for-wp'), __("Visitor Type", 'google-analytics-dashboard-for-wp'), __("Search Engines", 'google-analytics-dashboard-for-wp'), __("Social Networks", 'google-analytics-dashboard-for-wp'), __("Unique Views", 'google-analytics-dashboard-for-wp'), __("Users", 'google-analytics-dashboard-for-wp'), __("Page Views", 'google-analytics-dashboard-for-wp'), __("Bounce Rate", 'google-analytics-dashboard-for-wp'), __("Organic Search", 'google-analytics-dashboard-for-wp'), __("Pages/Session", 'google-analytics-dashboard-for-wp'), __("Invalid response, more details in JavaScript Console (F12).", 'google-analytics-dashboard-for-wp'), __("Not enough data collected", 'google-analytics-dashboard-for-wp'), __("This report is unavailable", 'google-analytics-dashboard-for-wp'), __("report generated by", 'google-analytics-dashboard-for-wp'), __("This plugin needs an authorization:", 'google-analytics-dashboard-for-wp') . ' <strong>' . __("authorize the plugin", 'google-analytics-dashboard-for-wp') . '</strong>!', __("Browser", 'google-analytics-dashboard-for-wp'), __("Operating System", 'google-analytics-dashboard-for-wp'), __("Screen Resolution", 'google-analytics-dashboard-for-wp'), __("Mobile Brand", 'google-analytics-dashboard-for-wp')), 'colorVariations' => GADWP_Tools::variations($this->gadwp->config->options['ga_dash_style']), 'region' => $region, 'language' => get_bloginfo('language'), 'filter' => $_SERVER["REQUEST_URI"], 'viewList' => false, 'scope' => 'front-item'));
         /* @formatter:on */
     }
 }
Esempio n. 2
0
 /**
  * Styles & Scripts conditional loading
  *
  * @param
  *            $hook
  */
 public function load_styles_scripts()
 {
     /*
      * GADWP main stylesheet
      */
     wp_enqueue_style('ga_dash-front', GADWP_URL . 'front/css/item-reports.css', null, GADWP_CURRENT_VERSION);
     /*
      * Item reports Styles & Scripts
      */
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_front']) && $this->gadwp->config->options['frontend_item_reports']) {
         wp_enqueue_style('gadwp-nprogress', GADWP_URL . 'tools/nprogress/nprogress.css', null, GADWP_CURRENT_VERSION);
         wp_enqueue_style('gadwp_frontend_item_reports', GADWP_URL . 'front/css/item-reports.css', null, GADWP_CURRENT_VERSION);
         $country_codes = GADWP_Tools::get_countrycodes();
         if ($this->gadwp->config->options['ga_target_geomap'] && isset($country_codes[$this->gadwp->config->options['ga_target_geomap']])) {
             $region = $this->gadwp->config->options['ga_target_geomap'];
         } else {
             $region = false;
         }
         wp_enqueue_style("wp-jquery-ui-dialog");
         if (!wp_script_is('googlejsapi')) {
             wp_register_script('googlejsapi', 'https://www.google.com/jsapi');
         }
         wp_enqueue_script('gadwp-nprogress', GADWP_URL . 'tools/nprogress/nprogress.js', array('jquery'), GADWP_CURRENT_VERSION);
         wp_enqueue_script('gadwp_frontend_item_reports', plugins_url('js/item-reports.js', __FILE__), array('gadwp-nprogress', 'googlejsapi', 'jquery', 'jquery-ui-dialog'), GADWP_CURRENT_VERSION);
         /* @formatter:off */
         wp_localize_script('gadwp_frontend_item_reports', 'gadwp_item_data', array('ajaxurl' => admin_url('admin-ajax.php'), 'security' => wp_create_nonce('gadwp_frontend_item_reports'), 'dateList' => array('today' => __("Today", 'ga-dash'), 'yesterday' => __("Yesterday", 'ga-dash'), '7daysAgo' => __("Last 7 Days", 'ga-dash'), '30daysAgo' => __("Last 30 Days", 'ga-dash'), '90daysAgo' => __("Last 90 Days", 'ga-dash')), 'reportList' => array('uniquePageviews' => __("Unique Views", 'ga-dash'), 'users' => __("Users", 'ga-dash'), 'organicSearches' => __("Organic", 'ga-dash'), 'pageviews' => __("Page Views", 'ga-dash'), 'visitBounceRate' => __("Bounce Rate", 'ga-dash'), 'locations' => __("Location", 'ga-dash'), 'referrers' => __("Referrers", 'ga-dash'), 'searches' => __("Searches", 'ga-dash'), 'trafficdetails' => __("Traffic Details", 'ga-dash')), 'i18n' => array(__("A JavaScript Error is blocking plugin resources!", 'ga-dash'), __("Traffic Mediums", 'ga-dash'), __("Visitor Type", 'ga-dash'), __("Social Networks", 'ga-dash'), __("Search Engines", 'ga-dash'), __("Unique Views", 'ga-dash'), __("Users", 'ga-dash'), __("Page Views", 'ga-dash'), __("Bounce Rate", 'ga-dash'), __("Organic Search", 'ga-dash'), __("Pages/Session", 'ga-dash'), __("Invalid response, more details in JavaScript Console (F12).", 'ga-dash'), __("Not enough data collected", 'ga-dash'), __("This report is unavailable", 'ga-dash'), __("report generated by", 'ga-dash')), 'colorVariations' => GADWP_Tools::variations($this->gadwp->config->options['ga_dash_style']), 'region' => $region));
         /* @formatter:on */
     }
 }
 public function tracking_code()
 {
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_track_exclude'], true) || $this->gadwp->config->options['ga_dash_excludesa'] && current_user_can('manage_network')) {
         return;
     }
     $traking_mode = $this->gadwp->config->options['ga_dash_tracking'];
     $traking_type = $this->gadwp->config->options['ga_dash_tracking_type'];
     if ($traking_mode > 0) {
         if (!$this->gadwp->config->options['ga_dash_tableid_jail']) {
             return;
         }
         if ($traking_type == "classic") {
             echo "\n<!-- BEGIN GADWP v" . GADWP_CURRENT_VERSION . " Classic Tracking - https://deconf.com/google-analytics-dashboard-wordpress/ -->\n";
             if ($this->gadwp->config->options['ga_event_tracking']) {
                 require_once 'tracking/events-classic.php';
             }
             require_once 'tracking/code-classic.php';
             echo "\n<!-- END GADWP Classic Tracking -->\n\n";
         } else {
             echo "\n<!-- BEGIN GADWP v" . GADWP_CURRENT_VERSION . " Universal Tracking - https://deconf.com/google-analytics-dashboard-wordpress/ -->\n";
             if ($this->gadwp->config->options['ga_event_tracking'] || $this->gadwp->config->options['ga_aff_tracking'] || $this->gadwp->config->options['ga_hash_tracking']) {
                 require_once 'tracking/events-universal.php';
             }
             require_once 'tracking/code-universal.php';
             echo "\n<!-- END GADWP Universal Tracking -->\n\n";
         }
     }
 }
Esempio n. 4
0
 public function __construct()
 {
     $this->gadwp = GADWP();
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) && 1 == $this->gadwp->config->options['dashboard_widget']) {
         add_action('wp_dashboard_setup', array($this, 'add_widget'));
     }
 }
Esempio n. 5
0
 public function __construct()
 {
     $this->gadwp = GADWP();
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) || GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_front'])) {
         add_action('wp_ajax_gadwp_set_error', array($this, 'ajax_set_error'));
     }
 }
Esempio n. 6
0
 function custom_adminbar_node($wp_admin_bar)
 {
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_front']) && $this->gadwp->config->options['frontend_item_reports']) {
         /* @formatter:off */
         $args = array('id' => 'gadwp-1', 'title' => '<span class="ab-icon"></span><span class="">' . __("Analytics", 'ga-dash') . '</span>', 'href' => '#1');
         /* @formatter:on */
         $wp_admin_bar->add_node($args);
     }
 }
 /**
  * Ajax handler for Item Reports
  *
  * @return json|int
  */
 public function ajax_item_reports()
 {
     if (!isset($_REQUEST['gadwp_security_backend_item_reports']) || !wp_verify_nonce($_REQUEST['gadwp_security_backend_item_reports'], 'gadwp_backend_item_reports')) {
         wp_die(-30);
     }
     $from = $_REQUEST['from'];
     $to = $_REQUEST['to'];
     $query = $_REQUEST['query'];
     if (isset($_REQUEST['filter'])) {
         $filter_id = $_REQUEST['filter'];
     } else {
         $filter_id = false;
     }
     if (ob_get_length()) {
         ob_clean();
     }
     if (!GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) || 0 == $this->gadwp->config->options['backend_item_reports']) {
         wp_die(-31);
     }
     if ($this->gadwp->config->options['ga_dash_token'] && $this->gadwp->config->options['ga_dash_tableid_jail'] && $from && $to) {
         if (null === $this->gadwp->gapi_controller) {
             $this->gadwp->gapi_controller = new GADWP_GAPI_Controller();
         }
     } else {
         wp_die(-24);
     }
     $projectId = $this->gadwp->config->options['ga_dash_tableid_jail'];
     $profile_info = GADWP_Tools::get_selected_profile($this->gadwp->config->options['ga_dash_profile_list'], $projectId);
     if (isset($profile_info[4])) {
         $this->gadwp->gapi_controller->timeshift = $profile_info[4];
     } else {
         $this->gadwp->gapi_controller->timeshift = (int) current_time('timestamp') - time();
     }
     if ($filter_id) {
         $uri_parts = explode('/', get_permalink($filter_id), 4);
         if (isset($uri_parts[3])) {
             $uri = '/' . $uri_parts[3];
         } else {
             wp_die(-25);
         }
         // allow URL correction before sending an API request
         $filter = apply_filters('gadwp_backenditem_uri', $uri);
         $lastchar = substr($filter, -1);
         if (isset($profile_info[6]) && $profile_info[6] && $lastchar == '/') {
             $filter = $filter . $profile_info[6];
         }
         // Encode URL
         $filter = rawurlencode(rawurldecode($filter));
     }
     $queries = explode(',', $query);
     $results = array();
     foreach ($queries as $value) {
         $results[] = $this->gadwp->gapi_controller->get($projectId, $value, $from, $to, $filter);
     }
     wp_send_json($results);
 }
 public function __construct()
 {
     $this->gadwp = GADWP();
     if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) && 1 == $this->gadwp->config->options['backend_item_reports']) {
         // Add custom column in Posts List
         add_filter('manage_posts_columns', array($this, 'add_columns'));
         // Populate custom column in Posts List
         add_action('manage_posts_custom_column', array($this, 'add_icons'), 10, 2);
         // Add custom column in Pages List
         add_filter('manage_pages_columns', array($this, 'add_columns'));
         // Populate custom column in Pages List
         add_action('manage_pages_custom_column', array($this, 'add_icons'), 10, 2);
     }
 }
Esempio n. 9
0
 /**
  * Ajax handler for getting analytics data for frontend Views vs UniqueViews
  *
  * @return string|int
  */
 public function ajax_afterpost_reports()
 {
     if (!isset($_REQUEST['gadash_security_pagereports']) || !wp_verify_nonce($_REQUEST['gadash_security_pagereports'], 'gadash_get_frontend_pagereports')) {
         wp_die(-30);
     }
     $page_url = $_REQUEST['gadash_pageurl'];
     $query = $_REQUEST['query'];
     if (ob_get_length()) {
         ob_clean();
     }
     if (!GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_front']) || !($this->gadwp->config->options['ga_dash_frontend_stats'] || $this->gadwp->config->options['ga_dash_frontend_keywords'])) {
         wp_die(-31);
     }
     if ($this->gadwp->config->options['ga_dash_token'] && $this->gadwp->config->options['ga_dash_tableid_jail']) {
         if (null === $this->gadwp->gapi_controller) {
             $this->gadwp->gapi_controller = new GADWP_GAPI_Controller();
         }
     } else {
         wp_die(-24);
     }
     if ($this->gadwp->config->options['ga_dash_tableid_jail']) {
         $projectId = $this->gadwp->config->options['ga_dash_tableid_jail'];
     } else {
         wp_die(-25);
     }
     $profile_info = GADWP_Tools::get_selected_profile($this->gadwp->config->options['ga_dash_profile_list'], $projectId);
     if (isset($profile_info[4])) {
         $this->gadwp->gapi_controller->timeshift = $profile_info[4];
     } else {
         $this->gadwp->gapi_controller->timeshift = (int) current_time('timestamp') - time();
     }
     switch ($query) {
         case 'pageviews':
             wp_send_json($this->gadwp->gapi_controller->frontend_afterpost_pageviews($projectId, $page_url));
             break;
         default:
             wp_send_json($this->gadwp->gapi_controller->frontend_afterpost_searches($projectId, $page_url));
             break;
     }
 }
Esempio n. 10
0
 /**
  * Conditional load
  */
 public function load()
 {
     if (is_admin()) {
         if (defined('DOING_AJAX') && DOING_AJAX) {
             if (GADWP_Tools::check_roles(self::$instance->config->options['ga_dash_access_back'])) {
                 /*
                  * Load Backend ajax actions
                  */
                 include_once GADWP_DIR . 'admin/ajax-actions.php';
                 self::$instance->backend_actions = new GADWP_Backend_Ajax();
             }
             /*
              * Load Frontend ajax actions
              */
             include_once GADWP_DIR . 'front/ajax-actions.php';
             self::$instance->frontend_actions = new GADWP_Frontend_Ajax();
             /*
              * Load Common ajax actions
              */
             include_once GADWP_DIR . 'common/ajax-actions.php';
             self::$instance->common_actions = new GADWP_Common_Ajax();
         } else {
             if (GADWP_Tools::check_roles(self::$instance->config->options['ga_dash_access_back'])) {
                 /*
                  * Load Backend Setup
                  */
                 include_once GADWP_DIR . 'admin/setup.php';
                 self::$instance->backend_setup = new GADWP_Backend_Setup();
                 if (self::$instance->config->options['dashboard_widget']) {
                     /*
                      * Load Backend Widget
                      */
                     include_once GADWP_DIR . 'admin/widgets.php';
                     self::$instance->backend_widgets = new GADWP_Backend_Widgets();
                 }
                 if (self::$instance->config->options['backend_item_reports']) {
                     /*
                      * Load Backend Item Reports
                      */
                     include_once GADWP_DIR . 'admin/item-reports.php';
                     self::$instance->backend_item_reports = new GADWP_Backend_Item_Reports();
                 }
             }
         }
     } else {
         if (GADWP_Tools::check_roles(self::$instance->config->options['ga_dash_access_front'])) {
             /*
              * Load Frontend Setup
              */
             include_once GADWP_DIR . 'front/setup.php';
             self::$instance->frontend_setup = new GADWP_Frontend_Setup();
             if (self::$instance->config->options['frontend_item_reports']) {
                 /*
                  * Load Frontend Item Reports
                  */
                 include_once GADWP_DIR . 'front/item-reports.php';
                 self::$instance->frontend_item_reports = new GADWP_Frontend_Item_Reports();
             }
         }
         if (!GADWP_Tools::check_roles(self::$instance->config->options['ga_track_exclude'], true) && self::$instance->config->options['ga_dash_tracking']) {
             /*
              * Load tracking class
              */
             include_once GADWP_DIR . 'front/tracking.php';
             self::$instance->tracking = new GADWP_Tracking();
         }
     }
 }
Esempio n. 11
0
 /**
  * Styles & Scripts conditional loading (based on current URI)
  *
  * @param
  *            $hook
  */
 public function load_styles_scripts($hook)
 {
     /*
      * GADWP main stylesheet
      */
     wp_enqueue_style('gadwp', GADWP_URL . 'admin/css/gadwp.css', null, GADWP_CURRENT_VERSION);
     /*
      * Dashboard Widgets Styles & Scripts
      */
     $widgets_hooks = array('index.php');
     if (in_array($hook, $widgets_hooks)) {
         if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) && $this->gadwp->config->options['dashboard_widget']) {
             wp_enqueue_style('gadwp-nprogress', GADWP_URL . 'tools/nprogress/nprogress.css', null, GADWP_CURRENT_VERSION);
             wp_enqueue_script('gadwp-admin-widgets', plugins_url('js/widgets.js', __FILE__), array('jquery'), GADWP_CURRENT_VERSION);
             if (!wp_script_is('googlejsapi')) {
                 wp_register_script('googlejsapi', 'https://www.google.com/jsapi');
                 wp_enqueue_script('googlejsapi');
             }
             wp_enqueue_script('gadwp-nprogress', GADWP_URL . 'tools/nprogress/nprogress.js', array('jquery'), GADWP_CURRENT_VERSION);
         }
     }
     /*
      * Posts/Pages List Styles & Scripts
      */
     $contentstats_hooks = array('edit.php');
     if (in_array($hook, $contentstats_hooks)) {
         if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) && $this->gadwp->config->options['item_reports']) {
             wp_enqueue_style('gadwp-nprogress', GADWP_URL . 'tools/nprogress/nprogress.css', null, GADWP_CURRENT_VERSION);
             wp_enqueue_style('gadwp_itemreports', GADWP_URL . 'admin/css/item-reports.css', null, GADWP_CURRENT_VERSION);
             $country_codes = GADWP_Tools::get_countrycodes();
             if ($this->gadwp->config->options['ga_target_geomap'] && isset($country_codes[$this->gadwp->config->options['ga_target_geomap']])) {
                 $region = $this->gadwp->config->options['ga_target_geomap'];
             } else {
                 $region = false;
             }
             wp_enqueue_style("wp-jquery-ui-dialog");
             if (!wp_script_is('googlejsapi')) {
                 wp_register_script('googlejsapi', 'https://www.google.com/jsapi');
             }
             wp_enqueue_script('gadwp-nprogress', GADWP_URL . 'tools/nprogress/nprogress.js', array('jquery'), GADWP_CURRENT_VERSION);
             wp_enqueue_script('gadwp_itemreports', plugins_url('js/item-reports.js', __FILE__), array('gadwp-nprogress', 'googlejsapi', 'jquery', 'jquery-ui-dialog'), GADWP_CURRENT_VERSION);
             wp_localize_script('gadwp_itemreports', 'gadwp_item_data', array('ajaxurl' => admin_url('admin-ajax.php'), 'security' => wp_create_nonce('gadwp_get_itemreports'), 'dateList' => array('today' => __("Today", 'ga-dash'), 'yesterday' => __("Yesterday", 'ga-dash'), '7daysAgo' => __("Last 7 Days", 'ga-dash'), '30daysAgo' => __("Last 30 Days", 'ga-dash'), '90daysAgo' => __("Last 90 Days", 'ga-dash')), 'reportList' => array('uniquePageviews' => __("Unique Views", 'ga-dash'), 'users' => __("Users", 'ga-dash'), 'organicSearches' => __("Organic", 'ga-dash'), 'pageviews' => __("Page Views", 'ga-dash'), 'visitBounceRate' => __("Bounce Rate", 'ga-dash'), 'locations' => __("Location", 'ga-dash'), 'referrers' => __("Referrers", 'ga-dash'), 'searches' => __("Searches", 'ga-dash'), 'trafficdetails' => __("Traffic Details", 'ga-dash')), 'i18n' => array(__("A JavaScript Error is blocking plugin resources!", 'ga-dash'), __("Traffic Mediums", 'ga-dash'), __("Visitor Type", 'ga-dash'), __("Social Networks", 'ga-dash'), __("Search Engines", 'ga-dash'), __("Unique Views", 'ga-dash'), __("Users", 'ga-dash'), __("Page Views", 'ga-dash'), __("Bounce Rate", 'ga-dash'), __("Organic Search", 'ga-dash'), __("Pages/Session", 'ga-dash'), __("Invalid response, more details in JavaScript Console (F12).", 'ga-dash'), __("Not enough data collected", 'ga-dash'), __("This report is unavailable", 'ga-dash'), __("report generated by", 'ga-dash')), 'colorVariations' => GADWP_Tools::variations($this->gadwp->config->options['ga_dash_style']), 'region' => $region));
         }
     }
     /*
      * Settings Styles & Scripts
      */
     $settings_hooks = array('toplevel_page_gadash_settings', 'google-analytics_page_gadash_backend_settings', 'google-analytics_page_gadash_frontend_settings', 'google-analytics_page_gadash_tracking_settings', 'google-analytics_page_gadash_errors_debugging');
     if (in_array($hook, $settings_hooks)) {
         wp_enqueue_style('wp-color-picker');
         wp_enqueue_script('wp-color-picker');
         wp_enqueue_script('wp-color-picker-script-handle', plugins_url('js/wp-color-picker-script.js', __FILE__), array('wp-color-picker'), false, true);
         wp_enqueue_script('gadwp-settings', plugins_url('js/settings.js', __FILE__), array('jquery'), GADWP_CURRENT_VERSION);
     }
 }
Esempio n. 12
0
        public function add_content($content)
        {
            if (!GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_front']) || !($this->gadwp->config->options['ga_dash_frontend_stats'] || $this->gadwp->config->options['ga_dash_frontend_keywords'])) {
                return $content;
            }
            if ($this->gadwp->config->options['ga_dash_frontend_stats'] && $this->gadwp->config->options['ga_dash_frontend_keywords']) {
                $npcounter = 1;
            } else {
                $npcounter = 0;
            }
            if ((is_page() || is_single()) && !is_preview()) {
                $page_url = $_SERVER["REQUEST_URI"];
                //Encode URL
                $page_url = rawurlencode($page_url);
                $content .= '<script type="text/javascript">
                  
                  gadash_firstclick = true;
                    
                  function checknpcounter(max) {
                    	try {
                    		if (npcounter == max) {
                    			NProgress.done();
                    		} else {
                    			npcounter++;
                    			NProgress.set((1/(max+1))*npcounter);
                    		}
                    	} catch(e) {}		
                    }

                    npcounter = 0;
                    
					jQuery(document).ready(function(){
					 	jQuery("#gadwp-title").click(function(){
							  	if (gadash_firstclick){
                                        
                                	try {
                                    	NProgress.configure({ parent: "#gadwp-progressbar" });
                                        NProgress.configure({ showSpinner: false });
                                        NProgress.start();
                                	} catch(e) {
                                		jQuery("#gadwp-progressbar").css({"margin-top":"3px","padding-left":"5px","height":"auto","color":"#000","border-left":"5px solid red","font-size":"13px"});
                                		jQuery("#gadwp-progressbar").html("' . __("A JavaScript Error is blocking plugin resources!", 'ga-dash') . '");
                                	} 
                                		    
									if(typeof ga_dash_drawpagesessions == "function"){
										jQuery.post("' . admin_url('admin-ajax.php') . '", {action: "gadash_get_frontend_pagereports",gadash_pageurl: "' . $page_url . '",query: "pageviews",gadash_security_pagereports: "' . wp_create_nonce('gadash_get_frontend_pagereports') . '"}, function(response){
										  if (!jQuery.isNumeric(response)){  
                                            if (jQuery.isArray(response)){
                                            	gadash_pagesessions = response;
                                       		    google.setOnLoadCallback(ga_dash_drawpagesessions(gadash_pagesessions));
                                             } else {
                                             	checknpcounter(0);
                                     			jQuery("#gadwp-progressbar").css({"margin-top":"3px","padding-left":"5px","height":"auto","color":"#000","border-left":"5px solid red","font-size":"13px"});
                                     			jQuery("#gadwp-progressbar").html("' . __("Invalid response, more details in JavaScript Console (F12).", 'ga-dash') . '");
                                     			console.log("\\n********************* GADWP Log ********************* \\n\\n"+response);
                                     		} 										  
										  }else{
									        jQuery("#gadwp-sessions").css({"background-color":"#F7F7F7","height":"auto","padding-top":"30px","padding-bottom":"30px","color":"#000","text-align":"center"});  
									        jQuery("#gadwp-sessions").html("' . __("This report is unavailable", 'ga-dash') . ' ("+response+")");
									        checknpcounter(' . $npcounter . ');    
                                          }	
										});
									}
									if(typeof ga_dash_drawpagesearches == "function"){
										jQuery.post("' . admin_url('admin-ajax.php') . '", {action: "gadash_get_frontend_pagereports",gadash_pageurl: "' . $page_url . '",query: "searches",gadash_security_pagereports: "' . wp_create_nonce('gadash_get_frontend_pagereports') . '"}, function(response){
                                            if (!jQuery.isNumeric(response)){										  
                                              if (jQuery.isArray(response)){
                                                  gadash_pagesearches = response;
                                           		  google.setOnLoadCallback(ga_dash_drawpagesearches(gadash_pagesearches));
                                               } else {
                                                  checknpcounter(0);
                                         		  jQuery("#gadwp-progressbar").css({"margin-top":"3px","padding-left":"5px","height":"auto","color":"#000","border-left":"5px solid red","font-size":"13px"});
                                         		  jQuery("#gadwp-progressbar").html("' . __("Invalid response, more details in JavaScript Console (F12).", 'ga-dash') . '");
                                         		  console.log("\\n********************* GADWP Log ********************* \\n\\n"+response);
                                       		   }										    
											}else{
										        jQuery("#gadwp-searches").css({"background-color":"#F7F7F7","height":"auto","padding-top":"30px","padding-bottom":"30px","color":"#000","text-align":"center"});
										        jQuery("#gadwp-searches").html("' . __("This report is unavailable", 'ga-dash') . ' ("+response+")");
										        checknpcounter(' . $npcounter . ');
                                            }	
										});
									}
    							gadash_firstclick = false;
							}
						});
					});';
                if ($this->gadwp->config->options['ga_dash_frontend_stats']) {
                    $title = __("Views vs UniqueViews", 'ga-dash');
                    if (isset($this->gadwp->config->options['ga_dash_style'])) {
                        $css = "colors:['" . $this->gadwp->config->options['ga_dash_style'] . "','" . GADWP_Tools::colourVariator($this->gadwp->config->options['ga_dash_style'], -20) . "'],";
                        $color = $this->gadwp->config->options['ga_dash_style'];
                    } else {
                        $css = "";
                        $color = "#3366CC";
                    }
                    $content .= '
			google.load("visualization", "1", {packages:["corechart"]});
			function ga_dash_drawpagesessions(gadash_pagesessions) {
	
			var data = google.visualization.arrayToDataTable(gadash_pagesessions);

			var options = {
			  legend: {position: "none"},
			  pointSize: 3,' . $css . '
			  title: "' . $title . '",
	  		  vAxis: { textPosition: "in", minValue: 0},
			  chartArea: {width: "100%", height: "80%"},
			  hAxis: { textPosition: "none"}
			};

			var chart = new google.visualization.AreaChart(document.getElementById("gadwp-sessions"));
			chart.draw(data, options);
            checknpcounter(' . $npcounter . ');      
			}';
                }
                if ($this->gadwp->config->options['ga_dash_frontend_keywords']) {
                    $content .= '
				google.load("visualization", "1", {packages:["table"]})
				function ga_dash_drawpagesearches(gadash_pagesearches) {

				var datas = google.visualization.arrayToDataTable(gadash_pagesearches);

				var options = {
					page: "enable",
					pageSize: 6,
					width: "100%"
				};

				var chart = new google.visualization.Table(document.getElementById("gadwp-searches"));
				chart.draw(datas, options);
				checknpcounter(' . $npcounter . ');
			  }';
                }
                $content .= "</script>";
                $content .= '<p>
								<div id="gadwp">
									<div id="gadwp-title">
									<a href="#gadwp">' . __('Google Analytics Reports', "ga-dash") . ' <span id="gadwp-arrow">&#x25BC;</span></a>
									</div>
									<div id="gadwp-progressbar"></div>    
									<div id="gadwp-content">
										' . ($this->gadwp->config->options['ga_dash_frontend_stats'] ? '<div id="gadwp-sessions"></div>' : '') . ($this->gadwp->config->options['ga_dash_frontend_keywords'] ? '<div id="gadwp-searches" class="gadwp-spinner"></div>' : '') . '
									</div>
								</div>
							</p>';
            }
            return $content;
        }
Esempio n. 13
0
 /**
  * Styles & Scripts conditional loading (based on current URI)
  *
  * @param
  *            $hook
  */
 public function load_styles_scripts($hook)
 {
     $new_hook = explode('_page_', $hook);
     if (isset($new_hook[1])) {
         $new_hook = '_page_' . $new_hook[1];
     } else {
         $new_hook = $hook;
     }
     /*
      * GADWP main stylesheet
      */
     wp_enqueue_style('gadwp', GADWP_URL . 'admin/css/gadwp.css', null, GADWP_CURRENT_VERSION);
     /*
      * GADWP UI
      */
     if (GADWP_Tools::get_cache('gapi_errors')) {
         $ed_bubble = '!';
     } else {
         $ed_bubble = '';
     }
     wp_enqueue_script('gadwp-backend-ui', plugins_url('js/ui.js', __FILE__), array('jquery'), GADWP_CURRENT_VERSION, true);
     /* @formatter:off */
     wp_localize_script('gadwp-backend-ui', 'gadwp_ui_data', array('ajaxurl' => admin_url('admin-ajax.php'), 'security' => wp_create_nonce('gadwp_dismiss_notices'), 'ed_bubble' => $ed_bubble));
     /* @formatter:on */
     if ($this->gadwp->config->options['switch_profile'] && count($this->gadwp->config->options['ga_dash_profile_list']) > 1) {
         $views = array();
         foreach ($this->gadwp->config->options['ga_dash_profile_list'] as $items) {
             if ($items[3]) {
                 $views[$items[1]] = esc_js(GADWP_Tools::strip_protocol($items[3]));
                 //  . ' &#8658; ' . $items[0] );
             }
         }
     } else {
         $views = false;
     }
     /*
      * Main Dashboard Widgets Styles & Scripts
      */
     $widgets_hooks = array('index.php');
     if (in_array($new_hook, $widgets_hooks)) {
         if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) && $this->gadwp->config->options['dashboard_widget']) {
             if ($this->gadwp->config->options['ga_target_geomap']) {
                 $country_codes = GADWP_Tools::get_countrycodes();
                 if (isset($country_codes[$this->gadwp->config->options['ga_target_geomap']])) {
                     $region = $this->gadwp->config->options['ga_target_geomap'];
                 } else {
                     $region = false;
                 }
             } else {
                 $region = false;
             }
             wp_enqueue_style('gadwp-nprogress', GADWP_URL . 'common/nprogress/nprogress.css', null, GADWP_CURRENT_VERSION);
             wp_enqueue_style('gadwp-backend-item-reports', GADWP_URL . 'admin/css/admin-widgets.css', null, GADWP_CURRENT_VERSION);
             wp_register_style('jquery-ui-tooltip-html', GADWP_URL . 'common/realtime/jquery.ui.tooltip.html.css');
             wp_enqueue_style('jquery-ui-tooltip-html');
             wp_register_script('jquery-ui-tooltip-html', GADWP_URL . 'common/realtime/jquery.ui.tooltip.html.js');
             if (!wp_script_is('googlejsapi')) {
                 wp_register_script('googlejsapi', 'https://www.google.com/jsapi');
             }
             wp_enqueue_script('gadwp-nprogress', GADWP_URL . 'common/nprogress/nprogress.js', array('jquery'), GADWP_CURRENT_VERSION);
             wp_enqueue_script('gadwp-backend-dashboard-reports', GADWP_URL . 'common/js/reports.js', array('jquery', 'googlejsapi', 'gadwp-nprogress', 'jquery-ui-tooltip', 'jquery-ui-core', 'jquery-ui-position', 'jquery-ui-tooltip-html'), GADWP_CURRENT_VERSION);
             /* @formatter:off */
             wp_localize_script('gadwp-backend-dashboard-reports', 'gadwp_item_data', array('ajaxurl' => admin_url('admin-ajax.php'), 'security' => wp_create_nonce('gadwp_backend_item_reports'), 'dateList' => array('realtime' => __("Real-Time", 'google-analytics-dashboard-for-wp'), 'today' => __("Today", 'google-analytics-dashboard-for-wp'), 'yesterday' => __("Yesterday", 'google-analytics-dashboard-for-wp'), '7daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 7), '14daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 14), '30daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 30), '90daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 90), '365daysAgo' => sprintf(_n("%s Year", "%s Years", 1, 'google-analytics-dashboard-for-wp'), __('One', 'google-analytics-dashboard-for-wp')), '1095daysAgo' => sprintf(_n("%s Year", "%s Years", 3, 'google-analytics-dashboard-for-wp'), __('Three', 'google-analytics-dashboard-for-wp'))), 'reportList' => array('sessions' => __("Sessions", 'google-analytics-dashboard-for-wp'), 'users' => __("Users", 'google-analytics-dashboard-for-wp'), 'organicSearches' => __("Organic", 'google-analytics-dashboard-for-wp'), 'pageviews' => __("Page Views", 'google-analytics-dashboard-for-wp'), 'visitBounceRate' => __("Bounce Rate", 'google-analytics-dashboard-for-wp'), 'locations' => __("Location", 'google-analytics-dashboard-for-wp'), 'contentpages' => __("Pages", 'google-analytics-dashboard-for-wp'), 'referrers' => __("Referrers", 'google-analytics-dashboard-for-wp'), 'searches' => __("Searches", 'google-analytics-dashboard-for-wp'), 'trafficdetails' => __("Traffic Details", 'google-analytics-dashboard-for-wp')), 'i18n' => array(__("A JavaScript Error is blocking plugin resources!", 'google-analytics-dashboard-for-wp'), __("Traffic Mediums", 'google-analytics-dashboard-for-wp'), __("Visitor Type", 'google-analytics-dashboard-for-wp'), __("Social Networks", 'google-analytics-dashboard-for-wp'), __("Search Engines", 'google-analytics-dashboard-for-wp'), __("Sessions", 'google-analytics-dashboard-for-wp'), __("Users", 'google-analytics-dashboard-for-wp'), __("Page Views", 'google-analytics-dashboard-for-wp'), __("Bounce Rate", 'google-analytics-dashboard-for-wp'), __("Organic Search", 'google-analytics-dashboard-for-wp'), __("Pages/Session", 'google-analytics-dashboard-for-wp'), __("Invalid response, more details in JavaScript Console (F12).", 'google-analytics-dashboard-for-wp'), __("Not enough data collected", 'google-analytics-dashboard-for-wp'), __("This report is unavailable", 'google-analytics-dashboard-for-wp'), __("report generated by", 'google-analytics-dashboard-for-wp'), __("This plugin needs an authorization:", 'google-analytics-dashboard-for-wp') . ' <a href="' . menu_page_url('gadash_settings', false) . '">' . __("authorize the plugin", 'google-analytics-dashboard-for-wp') . '</a>.'), 'i18n_realtime' => array(__("REFERRALS", 'google-analytics-dashboard-for-wp'), __("KEYWORDS", 'google-analytics-dashboard-for-wp'), __("SOCIAL", 'google-analytics-dashboard-for-wp'), __("CAMPAIGN", 'google-analytics-dashboard-for-wp'), __("DIRECT", 'google-analytics-dashboard-for-wp'), __("NEW", 'google-analytics-dashboard-for-wp')), 'realtime_maxpages' => $this->gadwp->config->options['ga_realtime_pages'], 'colorVariations' => GADWP_Tools::variations($this->gadwp->config->options['ga_dash_style']), 'region' => $region, 'language' => get_bloginfo('language'), 'viewList' => $views, 'scope' => 'admin-widgets'));
             /* @formatter:on */
         }
     }
     /*
      * Posts/Pages List Styles & Scripts
      */
     $contentstats_hooks = array('edit.php');
     if (in_array($hook, $contentstats_hooks)) {
         if (GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) && $this->gadwp->config->options['backend_item_reports']) {
             if ($this->gadwp->config->options['ga_target_geomap']) {
                 $country_codes = GADWP_Tools::get_countrycodes();
                 if (isset($country_codes[$this->gadwp->config->options['ga_target_geomap']])) {
                     $region = $this->gadwp->config->options['ga_target_geomap'];
                 } else {
                     $region = false;
                 }
             } else {
                 $region = false;
             }
             wp_enqueue_style('gadwp-nprogress', GADWP_URL . 'common/nprogress/nprogress.css', null, GADWP_CURRENT_VERSION);
             wp_enqueue_style('gadwp-backend-item-reports', GADWP_URL . 'admin/css/item-reports.css', null, GADWP_CURRENT_VERSION);
             wp_enqueue_style("wp-jquery-ui-dialog");
             if (!wp_script_is('googlejsapi')) {
                 wp_register_script('googlejsapi', 'https://www.google.com/jsapi');
             }
             wp_enqueue_script('gadwp-nprogress', GADWP_URL . 'common/nprogress/nprogress.js', array('jquery'), GADWP_CURRENT_VERSION);
             wp_enqueue_script('gadwp-backend-item-reports', GADWP_URL . 'common/js/reports.js', array('gadwp-nprogress', 'googlejsapi', 'jquery', 'jquery-ui-dialog'), GADWP_CURRENT_VERSION);
             /* @formatter:off */
             wp_localize_script('gadwp-backend-item-reports', 'gadwp_item_data', array('ajaxurl' => admin_url('admin-ajax.php'), 'security' => wp_create_nonce('gadwp_backend_item_reports'), 'dateList' => array('today' => __("Today", 'google-analytics-dashboard-for-wp'), 'yesterday' => __("Yesterday", 'google-analytics-dashboard-for-wp'), '7daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 7), '14daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 14), '30daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 30), '90daysAgo' => sprintf(__("Last %d Days", 'google-analytics-dashboard-for-wp'), 90), '365daysAgo' => sprintf(_n("%s Year", "%s Years", 1, 'google-analytics-dashboard-for-wp'), __('One', 'google-analytics-dashboard-for-wp')), '1095daysAgo' => sprintf(_n("%s Year", "%s Years", 3, 'google-analytics-dashboard-for-wp'), __('Three', 'google-analytics-dashboard-for-wp'))), 'reportList' => array('uniquePageviews' => __("Unique Views", 'google-analytics-dashboard-for-wp'), 'users' => __("Users", 'google-analytics-dashboard-for-wp'), 'organicSearches' => __("Organic", 'google-analytics-dashboard-for-wp'), 'pageviews' => __("Page Views", 'google-analytics-dashboard-for-wp'), 'visitBounceRate' => __("Bounce Rate", 'google-analytics-dashboard-for-wp'), 'locations' => __("Location", 'google-analytics-dashboard-for-wp'), 'referrers' => __("Referrers", 'google-analytics-dashboard-for-wp'), 'searches' => __("Searches", 'google-analytics-dashboard-for-wp'), 'trafficdetails' => __("Traffic Details", 'google-analytics-dashboard-for-wp')), 'i18n' => array(__("A JavaScript Error is blocking plugin resources!", 'google-analytics-dashboard-for-wp'), __("Traffic Mediums", 'google-analytics-dashboard-for-wp'), __("Visitor Type", 'google-analytics-dashboard-for-wp'), __("Social Networks", 'google-analytics-dashboard-for-wp'), __("Search Engines", 'google-analytics-dashboard-for-wp'), __("Unique Views", 'google-analytics-dashboard-for-wp'), __("Users", 'google-analytics-dashboard-for-wp'), __("Page Views", 'google-analytics-dashboard-for-wp'), __("Bounce Rate", 'google-analytics-dashboard-for-wp'), __("Organic Search", 'google-analytics-dashboard-for-wp'), __("Pages/Session", 'google-analytics-dashboard-for-wp'), __("Invalid response, more details in JavaScript Console (F12).", 'google-analytics-dashboard-for-wp'), __("Not enough data collected", 'google-analytics-dashboard-for-wp'), __("This report is unavailable", 'google-analytics-dashboard-for-wp'), __("report generated by", 'google-analytics-dashboard-for-wp'), __("This plugin needs an authorization:", 'google-analytics-dashboard-for-wp') . ' <a href="' . menu_page_url('gadash_settings', false) . '">' . __("authorize the plugin", 'google-analytics-dashboard-for-wp') . '</a>.'), 'colorVariations' => GADWP_Tools::variations($this->gadwp->config->options['ga_dash_style']), 'region' => $region, 'language' => get_bloginfo('language'), 'viewList' => false, 'scope' => 'admin-item'));
             /* @formatter:on */
         }
     }
     /*
      * Settings Styles & Scripts
      */
     $settings_hooks = array('_page_gadash_settings', '_page_gadash_backend_settings', '_page_gadash_frontend_settings', '_page_gadash_tracking_settings', '_page_gadash_errors_debugging');
     if (in_array($new_hook, $settings_hooks)) {
         wp_enqueue_style('wp-color-picker');
         wp_enqueue_script('wp-color-picker');
         wp_enqueue_script('wp-color-picker-script-handle', plugins_url('js/wp-color-picker-script.js', __FILE__), array('wp-color-picker'), false, true);
         wp_enqueue_script('gadwp-settings', plugins_url('js/settings.js', __FILE__), array('jquery'), GADWP_CURRENT_VERSION);
     }
 }
Esempio n. 14
0
 /**
  * Ajax handler for Admin Widget
  *
  * @return json|int
  */
 public function ajax_widget_reports()
 {
     if (!isset($_REQUEST['gadash_security_widget_reports']) || !wp_verify_nonce($_REQUEST['gadash_security_widget_reports'], 'gadash_get_widgetreports')) {
         wp_die(-30);
     }
     $projectId = $_REQUEST['projectId'];
     $from = $_REQUEST['from'];
     $to = $_REQUEST['to'];
     $query = $_REQUEST['query'];
     if (ob_get_length()) {
         ob_clean();
     }
     if (!GADWP_Tools::check_roles($this->gadwp->config->options['ga_dash_access_back']) || 0 == $this->gadwp->config->options['dashboard_widget']) {
         wp_die(-31);
     }
     if ($this->gadwp->config->options['ga_dash_token'] && $projectId && $from && $to) {
         if (null === $this->gadwp->gapi_controller) {
             $this->gadwp->gapi_controller = new GADWP_GAPI_Controller();
         }
     } else {
         wp_die(-24);
     }
     $profile_info = GADWP_Tools::get_selected_profile($this->gadwp->config->options['ga_dash_profile_list'], $projectId);
     if (isset($profile_info[4])) {
         $this->gadwp->gapi_controller->timeshift = $profile_info[4];
     } else {
         $this->gadwp->gapi_controller->timeshift = (int) current_time('timestamp') - time();
     }
     $queries = explode(',', $query);
     $results = array();
     foreach ($queries as $value) {
         $results[] = $this->gadwp->gapi_controller->get($projectId, $value, $from, $to);
     }
     wp_send_json($results);
 }