From 0c2d58f6b473993e5567c2b6dcb7fed66711491b Mon Sep 17 00:00:00 2001 From: Ishan Date: Tue, 12 Feb 2019 22:01:38 -0600 Subject: [PATCH] Adding option to exclude administrators from tracking --- fathom-analytics.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/fathom-analytics.php b/fathom-analytics.php index 13b3868..3907b33 100644 --- a/fathom-analytics.php +++ b/fathom-analytics.php @@ -24,6 +24,7 @@ const FATHOM_URL_OPTION_NAME = 'fathom_url'; const FATHOM_SITE_ID_OPTION_NAME = 'fathom_site_id'; +const FATHOM_ADMIN_TRACKING_OPTION_NAME = 'fathom_track_admin'; /** * @since 1.0.0 @@ -52,17 +53,29 @@ function fathom_get_site_id() { return get_option( FATHOM_SITE_ID_OPTION_NAME, '' ); } +/** + * @since 1.0.1 + */ +function fathom_get_admin_tracking() { + return get_option( FATHOM_ADMIN_TRACKING_OPTION_NAME, ''); +} + /** * @since 1.0.0 */ function fathom_print_js_snippet() { $url = fathom_get_url(); + $exclude_admin = fathom_get_admin_tracking(); // don't print snippet if fathom URL is empty if( empty( $url ) ) { return; } + if( empty( $exclude_admin ) && current_user_can('manage_options') ) { + return; + } + $site_id = fathom_get_site_id(); ?> @@ -98,11 +111,14 @@ function fathom_register_settings() { // register options register_setting( 'fathom', FATHOM_URL_OPTION_NAME, array( 'type' => 'string' ) ); register_setting( 'fathom', FATHOM_SITE_ID_OPTION_NAME, array( 'type' => 'string' ) ); + register_setting( 'fathom', FATHOM_ADMIN_TRACKING_OPTION_NAME, array( 'type' => 'string') ); // register settings fields add_settings_field( FATHOM_URL_OPTION_NAME, __( 'Dashboard URL', 'fathom-analytics' ), 'fathom_print_url_setting_field', 'fathom-analytics', 'default' ); add_settings_field( FATHOM_SITE_ID_OPTION_NAME, __( 'Site ID', 'fathom-analytics' ), 'fathom_print_site_id_setting_field', 'fathom-analytics', 'default' ); + + add_settings_field( FATHOM_ADMIN_TRACKING_OPTION_NAME, __('Track Administrators', 'fathom-analytics'), 'fathom_print_admin_tracking_setting_field', 'fathom-analytics', 'default'); } /** @@ -138,6 +154,15 @@ function fathom_print_site_id_setting_field( $args = array() ) { echo '

' . __( 'Find your site ID by by clicking the gearwheel in your Fathom dashboard.', 'fathom-analytics' ) . '

'; } +/** + * @since 1.0.1 + */ +function fathom_print_admin_tracking_setting_field( $args = array() ) { + $value = get_option( FATHOM_ADMIN_TRACKING_OPTION_NAME ); + echo sprintf( '', FATHOM_ADMIN_TRACKING_OPTION_NAME, FATHOM_ADMIN_TRACKING_OPTION_NAME, checked( 1, $value, false ) ); + echo '

' . __( 'Check if you want to track visits by administrators', 'fathom-analytics' ) . '

'; +} + add_action( 'wp_head', 'fathom_print_js_snippet', 50 ); if( is_admin() && ! wp_doing_ajax() ) {