|
25 | 25 |
|
26 | 26 | const FATHOM_URL_OPTION_NAME = 'fathom_url'; |
27 | 27 | const FATHOM_SITE_ID_OPTION_NAME = 'fathom_site_id'; |
| 28 | +const FATHOM_ADMIN_TRACKING_OPTION_NAME = 'fathom_track_admin'; |
28 | 29 | const FATHOM_PRIVATE_SHARE_PASSWORD = 'fathom_share_password'; |
29 | 30 | const FATHOM_SHOW_ANALYTICS_MENU_ITEM = 'fathom_show_menu'; |
30 | 31 |
|
@@ -55,11 +56,28 @@ function fathom_get_site_id() { |
55 | 56 | return get_option( FATHOM_SITE_ID_OPTION_NAME, '' ); |
56 | 57 | } |
57 | 58 |
|
| 59 | +/** |
| 60 | + * @since 1.0.1 |
| 61 | + */ |
| 62 | +function fathom_get_admin_tracking() { |
| 63 | + return get_option( FATHOM_ADMIN_TRACKING_OPTION_NAME, ''); |
| 64 | +} |
| 65 | + |
58 | 66 | /** |
59 | 67 | * @since 1.0.0 |
60 | 68 | */ |
61 | 69 | function fathom_print_js_snippet() { |
62 | 70 | $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 | + } |
63 | 81 |
|
64 | 82 | $site_id = fathom_get_site_id(); |
65 | 83 |
|
@@ -117,18 +135,17 @@ function fathom_register_settings() { |
117 | 135 |
|
118 | 136 | // register options |
119 | 137 | register_setting( 'fathom', FATHOM_SITE_ID_OPTION_NAME, array( 'type' => 'string' ) ); |
| 138 | + register_setting( 'fathom', FATHOM_ADMIN_TRACKING_OPTION_NAME, array( 'type' => 'string') ); |
120 | 139 | register_setting( 'fathom', FATHOM_URL_OPTION_NAME, array( 'type' => 'string' ) ); |
121 | | - |
122 | 140 | register_setting( 'fathom', FATHOM_PRIVATE_SHARE_PASSWORD, array( 'type' => 'string' ) ); |
123 | 141 | register_setting( 'fathom', FATHOM_SHOW_ANALYTICS_MENU_ITEM, array( 'type' => 'boolean' ) ); |
124 | 142 |
|
125 | 143 | // register settings fields |
126 | 144 | 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'); |
127 | 146 | add_settings_field( FATHOM_SHOW_ANALYTICS_MENU_ITEM, __( 'Display Analytics Menu Item', 'fathom-analytics' ), 'fathom_print_display_analytics_menu_setting_field', 'fathom-analytics', 'default' ); |
128 | 147 | add_settings_field( FATHOM_PRIVATE_SHARE_PASSWORD, __( 'Fathom Share Password', 'fathom-analytics' ), 'fathom_print_share_password_setting_field', 'fathom-analytics', 'default' ); |
129 | | - |
130 | 148 | add_settings_field( FATHOM_URL_OPTION_NAME, __( 'Fathom URL', 'fathom-analytics' ), 'fathom_print_url_setting_field', 'fathom-analytics', 'default' ); |
131 | | - |
132 | 149 | } |
133 | 150 |
|
134 | 151 | /** |
@@ -182,6 +199,15 @@ function fathom_print_site_id_setting_field( $args = array() ) { |
182 | 199 | 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>'; |
183 | 200 | } |
184 | 201 |
|
| 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 | + |
185 | 211 | add_action( 'wp_head', 'fathom_print_js_snippet', 50 ); |
186 | 212 |
|
187 | 213 | if( is_admin() && ! wp_doing_ajax() ) { |
|
0 commit comments