Skip to content

Commit 8d079bb

Browse files
authored
Merge pull request #1 from ishansharma/master
Option to include/exclude administrators from tracking
2 parents 6393170 + 278fb11 commit 8d079bb

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

fathom-analytics.php

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
const FATHOM_URL_OPTION_NAME = 'fathom_url';
2727
const FATHOM_SITE_ID_OPTION_NAME = 'fathom_site_id';
28+
const FATHOM_ADMIN_TRACKING_OPTION_NAME = 'fathom_track_admin';
2829
const FATHOM_PRIVATE_SHARE_PASSWORD = 'fathom_share_password';
2930
const FATHOM_SHOW_ANALYTICS_MENU_ITEM = 'fathom_show_menu';
3031

@@ -55,11 +56,28 @@ function fathom_get_site_id() {
5556
return get_option( FATHOM_SITE_ID_OPTION_NAME, '' );
5657
}
5758

59+
/**
60+
* @since 1.0.1
61+
*/
62+
function fathom_get_admin_tracking() {
63+
return get_option( FATHOM_ADMIN_TRACKING_OPTION_NAME, '');
64+
}
65+
5866
/**
5967
* @since 1.0.0
6068
*/
6169
function fathom_print_js_snippet() {
6270
$url = fathom_get_url();
71+
$exclude_admin = fathom_get_admin_tracking();
72+
73+
// don't print snippet if fathom URL is empty
74+
if( empty( $url ) ) {
75+
return;
76+
}
77+
78+
if( empty( $exclude_admin ) && current_user_can('manage_options') ) {
79+
return;
80+
}
6381

6482
$site_id = fathom_get_site_id();
6583

@@ -117,18 +135,17 @@ function fathom_register_settings() {
117135

118136
// register options
119137
register_setting( 'fathom', FATHOM_SITE_ID_OPTION_NAME, array( 'type' => 'string' ) );
138+
register_setting( 'fathom', FATHOM_ADMIN_TRACKING_OPTION_NAME, array( 'type' => 'string') );
120139
register_setting( 'fathom', FATHOM_URL_OPTION_NAME, array( 'type' => 'string' ) );
121-
122140
register_setting( 'fathom', FATHOM_PRIVATE_SHARE_PASSWORD, array( 'type' => 'string' ) );
123141
register_setting( 'fathom', FATHOM_SHOW_ANALYTICS_MENU_ITEM, array( 'type' => 'boolean' ) );
124142

125143
// register settings fields
126144
add_settings_field( FATHOM_SITE_ID_OPTION_NAME, __( 'Site ID', 'fathom-analytics' ), 'fathom_print_site_id_setting_field', 'fathom-analytics', 'default' );
145+
add_settings_field( FATHOM_ADMIN_TRACKING_OPTION_NAME, __('Track Administrators', 'fathom-analytics'), 'fathom_print_admin_tracking_setting_field', 'fathom-analytics', 'default');
127146
add_settings_field( FATHOM_SHOW_ANALYTICS_MENU_ITEM, __( 'Display Analytics Menu Item', 'fathom-analytics' ), 'fathom_print_display_analytics_menu_setting_field', 'fathom-analytics', 'default' );
128147
add_settings_field( FATHOM_PRIVATE_SHARE_PASSWORD, __( 'Fathom Share Password', 'fathom-analytics' ), 'fathom_print_share_password_setting_field', 'fathom-analytics', 'default' );
129-
130148
add_settings_field( FATHOM_URL_OPTION_NAME, __( 'Fathom URL', 'fathom-analytics' ), 'fathom_print_url_setting_field', 'fathom-analytics', 'default' );
131-
132149
}
133150

134151
/**
@@ -182,6 +199,15 @@ function fathom_print_site_id_setting_field( $args = array() ) {
182199
echo '<p class="description">' . __( 'This is the <a href="https://usefathom.com/support/wordpress" target="_blank">unique Tracking ID</a> for your site', 'fathom-analytics' ) . '</p>';
183200
}
184201

202+
/**
203+
* @since 1.0.1
204+
*/
205+
function fathom_print_admin_tracking_setting_field( $args = array() ) {
206+
$value = get_option( FATHOM_ADMIN_TRACKING_OPTION_NAME );
207+
echo sprintf( '<input type="checkbox" name="%s" id="%s" value="1" %s />', FATHOM_ADMIN_TRACKING_OPTION_NAME, FATHOM_ADMIN_TRACKING_OPTION_NAME, checked( 1, $value, false ) );
208+
echo '<p class="description">' . __( 'Check if you want to track visits by administrators', 'fathom-analytics' ) . '</p>';
209+
}
210+
185211
add_action( 'wp_head', 'fathom_print_js_snippet', 50 );
186212

187213
if( is_admin() && ! wp_doing_ajax() ) {

0 commit comments

Comments
 (0)