diff --git a/fathom-analytics.php b/fathom-analytics.php index 8d8f19e..322181c 100644 --- a/fathom-analytics.php +++ b/fathom-analytics.php @@ -25,6 +25,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'; const FATHOM_PRIVATE_SHARE_PASSWORD = 'fathom_share_password'; const FATHOM_SHOW_ANALYTICS_MENU_ITEM = 'fathom_show_menu'; @@ -55,11 +56,28 @@ 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(); @@ -117,18 +135,17 @@ function fathom_register_settings() { // register options register_setting( 'fathom', FATHOM_SITE_ID_OPTION_NAME, array( 'type' => 'string' ) ); + register_setting( 'fathom', FATHOM_ADMIN_TRACKING_OPTION_NAME, array( 'type' => 'string') ); register_setting( 'fathom', FATHOM_URL_OPTION_NAME, array( 'type' => 'string' ) ); - register_setting( 'fathom', FATHOM_PRIVATE_SHARE_PASSWORD, array( 'type' => 'string' ) ); register_setting( 'fathom', FATHOM_SHOW_ANALYTICS_MENU_ITEM, array( 'type' => 'boolean' ) ); // register settings fields 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'); add_settings_field( FATHOM_SHOW_ANALYTICS_MENU_ITEM, __( 'Display Analytics Menu Item', 'fathom-analytics' ), 'fathom_print_display_analytics_menu_setting_field', 'fathom-analytics', 'default' ); add_settings_field( FATHOM_PRIVATE_SHARE_PASSWORD, __( 'Fathom Share Password', 'fathom-analytics' ), 'fathom_print_share_password_setting_field', 'fathom-analytics', 'default' ); - add_settings_field( FATHOM_URL_OPTION_NAME, __( 'Fathom URL', 'fathom-analytics' ), 'fathom_print_url_setting_field', 'fathom-analytics', 'default' ); - } /** @@ -182,6 +199,15 @@ function fathom_print_site_id_setting_field( $args = array() ) { echo '
' . __( 'This is the unique Tracking ID for your site', '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() ) {