Changeset 3127659
- Timestamp:
- 07/29/2024 06:36:44 PM (19 months ago)
- Location:
- tracemyip-visitor-analytics-ip-tracking-control/trunk
- Files:
-
- 2 added
- 6 edited
-
TraceMyIP-Wordpress-Plugin.php (modified) (5 diffs)
-
css/common.css (modified) (2 diffs)
-
images/tmip_team_photo_set_1.jpg (added)
-
includes/functions.php (modified) (44 diffs)
-
js/common.js (modified) (2 diffs)
-
languages/en.php (modified) (5 diffs)
-
readme.txt (modified) (7 diffs)
-
uninstall.php (added)
Legend:
- Unmodified
- Added
- Removed
-
tracemyip-visitor-analytics-ip-tracking-control/trunk/TraceMyIP-Wordpress-Plugin.php
r3126412 r3127659 4 4 Plugin URI: https://www.tracemyip.org 5 5 Description: Website visitor IP address activity tracking, IP analytics, visitor email alerts, IP changes tracker and visitor IP address blocking. Tag visitors IPs, track, create email alerts, control and manage pages, links and protect contact forms. GDPR compliant. For visitor tracker setup instructions, see <a href="admin.php?page=tmip_lnk_wp_settings"><b>plugin settings</b></a>. 6 Version: 2.6 06 Version: 2.61 7 7 Author: TraceMyIP.org 8 8 Author URI: https://www.TraceMyIP.org … … 11 11 License URI: http://www.gnu.org/licenses/gpl-2.0.html 12 12 */ 13 if (!defined('TMIP_VERSION') ) define('TMIP_VERSION', '2.6 0');13 if (!defined('TMIP_VERSION') ) define('TMIP_VERSION', '2.61'); 14 14 15 15 ### SET CONSTANTS ############################################ … … 21 21 define("tmip_plugin_dir_name", 'tracemyip-visitor-analytics-ip-tracking-control', false); 22 22 define("tmip_enable_meta_rating", 2); // Show rate section. 1-post selected rating, 2-show transitional screen 23 define("tmip_codes_usage_rate_thresh", 50); // Number of tracker pageloads required to triggerrating panel23 define("tmip_codes_usage_rate_thresh", 3); // Number of tracker calls required to show rating panel 24 24 define("tmip_html_to_js_format_realti", 1); // 1- Enable real time HTML to JavaScript code conversion 25 25 define("tmip_html_to_js_format_onsubm", 1); // 1- Enable reformatting html code to JS code on submit of new code or if realtime 26 26 // html>JS have occured at least once 27 define("tmip_codes_usage_stats_data", 1); // 1- Enable codes loading status, 2- Enable code usage process counts27 define("tmip_codes_usage_stats_data", 2); // 1- Enable codes loading status, 2- Enable code usage process counts 28 28 29 define("tmip_trk_path_str_array", array('vLg','tracker')); // tracker path kneedle. First listed is used for generator08312207584329 define("tmip_trk_path_str_array", array('vLg','tracker')); // path kneedle. First listed is used for gen 083122075843 30 30 define("tmip_trk_add_async_attr", 1); // add async attribute for tracker script if not present 31 31 … … 38 38 39 39 ### ADD OPTIONS ############################################ 40 add_option(tmip_visit_tracker_val, tmip_visit_tracker_default); 41 add_option(tmip_page_tracker_val, tmip_page_tracker_default); 40 tmip_reset_delete_plugin_data(4); // Add default option data 42 41 43 42 ### ADD PLUGIN WP MENU ACTION LINKS ############################################ … … 66 65 67 66 ### FUNCTIONS ############################################ 68 69 // Reset settings70 // tmip_reset_plugin_settings();67 // Reset settings: 1-reset all except no_reset flagged vars, 2-reset all to defaults, 3-delete all options 68 // tmip_reset_delete_plugin_data(3); 69 // tmip_write_debug_info_to_file($_SERVER); 71 70 72 71 // Add Page Tracker to header -
tracemyip-visitor-analytics-ip-tracking-control/trunk/css/common.css
r3044107 r3127659 263 263 } 264 264 .tmip_multicolor_text { 265 letter-spacing:0.2em; 265 266 background-image: linear-gradient(to left, violet, red, indigo, green, blue, yellow, orange); 266 267 -webkit-background-clip: text; … … 279 280 color: #333; 280 281 } 282 .tmip_wp_menu_repo_link { 283 /*color: #FFE118 !important;*/ 284 } 285 .tmip_wp_menu_rate_link { 286 color: #00E837 !important; 287 } 288 .tmip_wp_cmenu_icon { 289 margin-left: 5px; 290 } 291 .tmip_trk_usage_stat_num { 292 opacity: 0.6; 293 font-size: 0.8em; 294 } 295 296 li#toplevel_page_tmip_admpanel_menu { 297 color: #000 !important; 298 background-color: #2E645D!important; 299 } 300 li#toplevel_page_tmip_admpanel_menu ul { 301 border-top: 2px solid #CCC!important; 302 border-right: 2px solid #888!important; 303 border-left: 8px solid #DDD!important; 304 border-bottom: 2px solid #888!important; 305 box-sizing: border-box; 306 background-color: inherit!important; 307 box-shadow: inset 0px 0px 40px rgba(0, 0, 0, 0.6)!important; 308 } 309 li#toplevel_page_tmip_admpanel_menu ul a{ 310 color: #FFF !important; 311 } 312 li#toplevel_page_tmip_admpanel_menu ul li:hover { 313 background-color: #EEE !important; 314 } 315 li#toplevel_page_tmip_admpanel_menu ul li:hover a { 316 color: #000 !important; 317 font-weight:bold; 318 } -
tracemyip-visitor-analytics-ip-tracking-control/trunk/includes/functions.php
r3126412 r3127659 46 46 } 47 47 function tmip_static_urls() { 48 if (defined('tmip_home_page_url')) return NULL; 48 49 if (isset($_SERVER['HTTPS']) and $_SERVER['HTTPS']) { 49 50 $tmip_prot='https'; … … 60 61 // 'false' to set constants case sensitive 61 62 define("tmip_home_page_url", 62 $tmip_prot.'://www.'.tmip_domain_name .'');63 $tmip_prot.'://www.'.tmip_domain_name); 63 64 64 65 define("tmip_home_page_login", … … 70 71 tmip_acc_upgr_url); 71 72 define("tmip_free_signup_page_url", 72 tmip_service_url.'/tools/website-visitors-counter-traffic-tracker-statistics/index.php?sto=1 ');73 tmip_service_url.'/tools/website-visitors-counter-traffic-tracker-statistics/index.php?sto=1&wpp=plug_settings_page'); 73 74 define("tmip_premium_signup_page_url", 74 tmip_service_url.'/members/index.php?page=spm_checkout&type=ssub&ntc=1 ');75 tmip_service_url.'/members/index.php?page=spm_checkout&type=ssub&ntc=1&wpp=plug_settings_page'); 75 76 define("tmip_wp_learn_kb", 76 77 tmip_service_url.'/learn/'); … … 80 81 '<a href="'.tmip_wp_learn_kb.'" target="_blank"><b>Knowledge Base</b></a>'); 81 82 define("tmip_kb_rock_ldr", 82 '<a href="'.tmip_wp_learn_kb.'disable-rocket-loader-to-enable-visitor-ip-tracking-936/ " target="_blank"><b>Rocket Loader</b></a>');83 '<a href="'.tmip_wp_learn_kb.'disable-rocket-loader-to-enable-visitor-ip-tracking-936/?wpp=plug_settings_page" target="_blank"><b>Rocket Loader</b></a>'); 83 84 84 85 // Learn KB urls 071323070147 85 86 define("tmip_wp_vistr_setup_tutorial", 86 tmip_wp_learn_kb.'wordpress-visitor-tracking-plugin-1382/'); 87 define("tmip_wp_block_ips_visit_control", 88 tmip_wp_learn_kb.'how-to-block-an-ip-address-1017/'); 87 tmip_wp_learn_kb.'wordpress-visitor-tracking-plugin-1382/?wpp=plug_settings_page'); 88 define("tmip_wp_vistr_troubleshooting_tutorial", 89 tmip_wp_learn_kb.'wordpress-plugin-stopped-working-2671/?wpp=plug_settings_page'); define("tmip_wp_block_ips_visit_control", 90 tmip_wp_learn_kb.'how-to-block-an-ip-address-1017/?wpp=plug_settings_page'); 89 91 define("tmip_wp_other_useful_tutorials", 90 tmip_wp_learn_kb.'most-popular-tracemyip-features-1594/ ');92 tmip_wp_learn_kb.'most-popular-tracemyip-features-1594/?wpp=plug_settings_page'); 91 93 define("tmip_wp_website_cache_optimization", 92 tmip_wp_learn_kb.'website-caching-cdn-and-website-analytics-and-visitor-tracking-issues-2422/'); 93 define("tmip_chart_tracker_url", 'https://tools.tracemyip.org/ipbox/md=1&pID=1-324473478-1-1600~1587599353~300*100*1*1*20~8CFFD1*33313B~0*0*0&uID=3-042220&pgB=013201&ttC=FF0000&trT=FFFFFF&erA=AED99E&orA=DEEFD7&nrC=666666&vrC=006666&sOP=icstzdlrpob&ipbCap=1&plVer='.$wp_pl_version.'&wpVer='.$wp_wp_version.'&wpAem='.$wp_user_info_ae); 94 tmip_wp_learn_kb.'website-caching-cdn-and-website-analytics-and-visitor-tracking-issues-2422/?wpp=plug_settings_page'); 95 define("tmip_chart_tracker_url", 96 $tmip_prot.'://tools.'.tmip_domain_name.'/ipbox/md=1&pID=1-324473478-1-1600~1587599353~300*100*1*1*20~8CFFD1*33313B~0*0*0&uID=3-042220&pgB=013201&ttC=FF0000&trT=FFFFFF&erA=AED99E&orA=DEEFD7&nrC=666666&vrC=006666&sOP=icstzdlrpob&ipbCap=1&plVer='.$wp_pl_version.'&wpVer='.$wp_wp_version.'&wpAem='.$wp_user_info_ae); 94 97 95 98 define("tmip_lrn_invtrk_lnk", tmip_link(tmip_lrn_invtrk_url,'<b>'.tmip_invisible_tracker.'</b>')); 96 99 97 100 98 101 // wpPv: WP plugin version wpIf: wordpress iframe token to disable break out of frames 99 102 define("tmip_ip_tools_index", 'https://tools.tracemyip.org/home/'.UVAR.'wpPv='.$wp_pl_version.'&wpIf=1'); 100 103 101 define("tmip_visit_tracker_val", 'tmip_visit_tracker', false); 102 define("tmip_visit_tracker_default", '', false); 103 104 define("tmip_position_val", 'tmip_visit_tracker_position', false); 105 define("tmip_position_default", 'footer', false); 106 107 define("tmip_page_tracker_val", 'tmip_page_tracker', false); 108 define("tmip_page_tracker_default", '', false); 104 // Define option vars 105 define("tmip_db_options_vars", 106 array( 107 'vis_tracker_code'=> array('db_var'=>'tmip_visit_tracker', 'default'=> ''), 108 'vis_trk_code_conv_html_to_js'=>array('db_var'=>'tmip_stat_vis_tr_hjconv', 'default'=> ''), 109 'vis_tracker_code_position'=> array('db_var'=>'tmip_visit_tracker_position', 'default'=> 'footer'), 110 'vis_tracker_ploads_ou_opt'=> array('db_var'=>'tmip_stat_vis_tr_query', 'default'=> 0), 111 'vis_tracker_ploads_lifetime'=> array('db_var'=>'tmip_stat_vis_tr_total_qry', 'default'=> 0, 'no_reset'=>1), 112 'vis_tracker_first_use_unix'=> array('db_var'=>'tmip_stat_vis_tr_first_used_unix', 'default'=> 0, 'no_reset'=>1), 113 'page_tracker_code'=> array('db_var'=>'tmip_page_tracker', 'default'=> ''), 114 'page_tracker_ploads_oncodeup'=>array('db_var'=>'tmip_stat_pag_tr_query', 'default'=> ''), 115 ) 116 ); 117 118 // Assign option vars 119 define("tmip_visit_tracker_opt", tmip_db_options_vars['vis_tracker_code']['db_var']); 120 define("tmip_visit_tracker_default", tmip_db_options_vars['vis_tracker_code']['default']); 121 define("tmip_vis_trk_code_html_js_opt", tmip_db_options_vars['vis_trk_code_conv_html_to_js']['db_var']); 122 123 define("tmip_position_val", tmip_db_options_vars['vis_tracker_code_position']['db_var']); 124 define("tmip_position_default", tmip_db_options_vars['vis_tracker_code_position']['default']); 125 126 define("tmip_vis_trk_ploads_curr_opt", tmip_db_options_vars['vis_tracker_ploads_ou_opt']['db_var']); 127 define("tmip_pag_trk_ploads_curr_opt", tmip_db_options_vars['vis_tracker_ploads_lifetime']['db_var']); 128 define("tmip_vis_trk_first_use_opt", tmip_db_options_vars['vis_tracker_first_use_unix']['db_var']); 129 130 define("tmip_page_tracker_opt", tmip_db_options_vars['page_tracker_code']['db_var']); 131 define("tmip_page_tracker_default", tmip_db_options_vars['page_tracker_code']['default']); 132 define("tmip_page_ploads_ou_opt", tmip_db_options_vars['page_tracker_ploads_oncodeup']['db_var']); 109 133 } 110 134 … … 130 154 function tmip_rate_serv() { 131 155 tmip_load_fontawesome_cloufare(); 132 $output .='<div id="tmip_sett_wrap_1">';156 $output='<div id="tmip_sett_wrap_1">'; 133 157 $output .=tmip_rate_review_section(); 134 158 $output .='</div>'; … … 149 173 if ($ua=$curUserAgent) { 150 174 // Do not show upgrade menu links - case insensitive 041023084633 151 if ( 152 (stristr($ua, 'Macintosh;') && stristr($ua, 'Safari/') && !stristr($ua, 'Chrome')) || // Safari on macOS (excluding Chrome) 153 preg_match('/Chrome|Edg\/|MSIE|Trident\//', $ua) // Chrome, Edge, Internet Explorer 175 if ((stristr($ua, 'Macintosh;') && stristr($ua, 'Safari/') && !stristr($ua, 'Chrome')) // Safari on macOS (excluding Chrome) 176 # || preg_match('/Chrome|Edg\/|MSIE|Trident\//', $ua) // Chrome, Edge, Internet Explorer 154 177 ) { 155 178 $mac_limit_drop=1; … … 173 196 ucwords(tmip_submenu_reports), // submenu link name 174 197 'manage_options', // capability 175 $menuID , // main menu link - make same as primary menu name to create and replace submenu198 $menuID.'', // main menu link - make same as primary menu name to create and replace submenu 176 199 'tmip_reports_page' // callback function 177 200 ); … … 184 207 'tmip_wp_settings' 185 208 ); 209 if (1==1) { 210 add_submenu_page( 211 $menuID, 212 tmip_service_Nname.' > '.ucwords(tmip_submenu_user_guide), 213 ucwords(tmip_submenu_user_guide), 214 'manage_options', 215 'tmip_lnk_user_guide_lrn', 216 'tmip_fnc_user_guide' 217 ); 218 } 219 if (1==2) { // Not used. 220 add_submenu_page( 221 $menuID, 222 tmip_service_Nname.' > '.ucwords(tmip_submenu_ip_tools), 223 ucwords(tmip_submenu_ip_tools), 224 'manage_options', 225 'tmip_lnk_ip_tools_idx', 226 'tmip_ip_tools_idx' 227 ); 228 } 229 if (!empty(get_option(tmip_db_options_vars['vis_tracker_code']['db_var']))) { 230 if (tmip_enable_meta_rating) { 231 add_submenu_page( 232 $menuID, // Parent menu tree slug 233 ucwords(tmip_submenu_rate_service), // page title 234 ucwords(tmip_submenu_rate_service), 235 'manage_options', // capability 236 'tmip_rate_serv_lnk', 237 'tmip_rate_serv' // callback function 238 ); 239 } 240 } 186 241 if ($mac_limit_drop<>1) { 187 242 add_submenu_page( … … 202 257 'tmip_myipv_46_adr' 203 258 ); 204 if (1==2) { // Not used.205 add_submenu_page(206 $menuID,207 tmip_service_Nname.' > '.ucwords(tmip_submenu_ip_tools),208 ucwords(tmip_submenu_ip_tools),209 'manage_options',210 'tmip_lnk_ip_tools_idx',211 'tmip_ip_tools_idx'212 );213 }214 if (1==1) {215 add_submenu_page(216 $menuID,217 tmip_service_Nname.' > '.ucwords(tmip_submenu_user_guide),218 ucwords(tmip_submenu_user_guide),219 'manage_options',220 'tmip_lnk_user_guide_lrn',221 'tmip_fnc_user_guide'222 );223 }224 if ($vis_tr_stats['vis_tr_queries_cnt']>=tmip_codes_usage_rate_thresh) {225 if (tmip_enable_meta_rating) {226 add_submenu_page(227 $menuID, // Parent menu tree slug228 ucwords(tmip_submenu_rate_service), // page title229 ucwords(tmip_submenu_rate_service),230 'manage_options', // capability231 'tmip_rate_serv_lnk',232 'tmip_rate_serv' // callback function233 );234 }235 }236 259 } 237 260 function tmip_reports_page() { 261 tmip_load_js(); 238 262 global $mac_link_tologin; 239 263 if ($mac_link_tologin) { … … 245 269 } 246 270 function tmip_upgrade_page() { 271 tmip_load_js(); 247 272 tmip_wp_iframe_page(tmip_go_to_upgrade); 248 273 } 249 274 function tmip_myipv_46_adr() { 275 tmip_load_js(); 250 276 tmip_wp_iframe_page(tmip_chart_tracker_url); 251 277 } … … 254 280 } 255 281 function tmip_fnc_user_guide() { 282 tmip_load_js(); 256 283 tmip_wp_iframe_page(tmip_userguide_url); 257 284 } … … 307 334 '; 308 335 } 336 function tmip_rate_review_section() { 337 tmip_load_js(); 338 tmip_load_css(); 339 global $tmip_plugin_dir_url; 340 341 $r=array('heart'); $thankYouIcon=$r[array_rand($r)]; // 'dove','child' 342 $r=array('hands-helping','leaf'); $helpNRateSec=$r[array_rand($r)]; 343 344 $output = ' 345 <style> 346 .ratehelp img { 347 float: left; 348 padding:20px; 349 margin-right: 20px; 350 margin-bottom: 7px; 351 -webkit-box-shadow: 2px 2px 6px 0px #777; 352 -moz-box-shadow: 2px 2px 6px 0px #777; 353 box-shadow: 2px 2px 6px 0px #777; 354 } 355 356 @media (max-width: 600px) { 357 .ratehelp img { 358 float: none !important; 359 display: block; 360 margin-left: auto!important; 361 margin-right: auto!important; 362 margin-bottom:30px; 363 364 } 365 } 366 </style> 367 <h2 class="tmip_sec_title"> 368 <i class="fa fa-'.$helpNRateSec.' fa-lg" style="color: #02970C; opacity: 0.8;"></i> Without your support this tool will not survive! 369 </h2> 370 <div class="ratehelp"> 371 <img src="'.$tmip_plugin_dir_url.'images/tmip_team_photo_set_1.jpg" alt="TraceMyIP Team" style="float: left; margin-right: 15px; max-height: 300px;"> 372 <i class="fa fa-star fa-1x tmip_outline-icon1" style="color: #FFFF00; opacity: 1.0;"></i> 373 <b> Your Rating Lights the Way!</b> 374 <blockquote> 375 <p>Please, take a minute to <b>support people</b> who have worked on this project. Your kind words are <u>important</u> to them.</p> 376 <p><b>Since 2008</b>, they have worked on '.tmip_service_Nname.' to invent new tech and improve your experience with recent WordPress integration. Your 5-star rating isn\'t just feedback; it\'s a heartfelt "Thank You!" that sparks their drive to maintain this project and guides others toward a stellar experience.</p> 377 <p>Positive reviews fuel their commitment to your satisfaction.</p> 378 <p><b>Thank you</b> in advance for your kindness <i class="fa fa-'.$thankYouIcon.' fa-lg" style="color: #AA0000; opacity: 0.8;"></i></p> 379 </blockquote> 380 <div style="width:100%; text-align:center;"> 381 <button type="button" class="tmip_submit_button1" style="outline-color: transparent;" onclick="window.open(\'https://wordpress.org/support/plugin/tracemyip-visitor-analytics-ip-tracking-control/reviews/?rate=5#new-post\')">Be Our Hero</button> 382 </div> 383 </div> 384 '; 385 return $output; 386 387 388 } 309 389 function tmip_plugin_row_add_rating($links,$file) { 310 390 global $tmip_plugin_dir_name,$tmip_plugin_pathbase,$tmip_plugin_sett_url,$tmip_plugin_dir_name, … … 328 408 $url_target='target="_blank"'; 329 409 if (tmip_enable_meta_rating==2 and $value<5) { 410 330 411 //$name=$rating[$value]; 331 412 $rate_url=$tmip_rate_pl_url; … … 360 441 return $links; 361 442 } 443 function tmip_admin_init() { 444 if (is_admin()) { 445 return 1; 446 } else { 447 return 0; 448 } 449 } 362 450 function tmip_insert_visitor_tracker() { 363 $code=get_option(tmip_visit_tracker_ val);451 $code=get_option(tmip_visit_tracker_opt); 364 452 365 453 $successVTC=0; … … 425 513 $js_conversion=NULL; 426 514 if ($successVTC) $js_conversion=tmip_stats_optimi_pagntra; elseif ($res and $res['alerts']) $js_conversion=$res['alerts']; 427 tmip_log_stat_data(array('type'=>'vis_tr_query','js_conversion'=>$js_conversion));515 if (!tmip_is_front_end_page()) tmip_log_stat_data(array('type'=>'vis_tr_query','js_conversion'=>$js_conversion)); 428 516 429 517 echo $code; … … 448 536 } 449 537 function tmip_insert_page_tracker() { 450 $code=get_option(tmip_page_tracker_ val);538 $code=get_option(tmip_page_tracker_opt); 451 539 if ($code and strpos($code,'tP_lanPTl') !== false) { 452 540 $code=stripslashes($code); 453 541 $code=str_replace('src="http:','src="',$code); 454 542 $code=str_replace('src="https:','src="',$code); 455 tmip_log_stat_data(array('type'=>'pag_tr_query'));543 if (!tmip_is_front_end_page()) tmip_log_stat_data(array('type'=>'pag_tr_query')); 456 544 echo $code; 457 545 } … … 470 558 if ($type=='vis_tr_query' or $type=='vis_tr_reset' or $type=='pag_tr_query' or $type=='pag_tr_reset' or $type=='reset_all_data') { 471 559 if ($type=='vis_tr_query' or $type=='vis_tr_reset' or $type=='reset_all_data') { 472 $database_column1='tmip_stat_vis_tr_query'; 473 $database_column2='tmip_stat_vis_tr_hjconv'; 474 $database_column3='tmip_stat_vis_tr_total_qry'; 475 $database_column4='tmip_stat_vis_tr_first_used_unix'; 476 560 $database_column1=tmip_vis_trk_ploads_curr_opt; 561 $database_column2=tmip_vis_trk_code_html_js_opt; 562 $database_column3=tmip_pag_trk_ploads_curr_opt; 563 $database_column4=tmip_vis_trk_first_use_opt; 477 564 } elseif ($type=='pag_tr_query' or $type=='pag_tr_reset') { 478 $database_column1='tmip_stat_pag_tr_query'; 479 } 565 $database_column1=tmip_page_ploads_ou_opt; 566 } 567 480 568 if ($type=='vis_tr_query' or $type=='pag_tr_query') { 481 569 $action='write'; … … 486 574 if ($action=='write') { 487 575 if ($database_column1) update_option($database_column1,(int)get_option($database_column1)+1); 488 if ($database_column2) update_option($database_column2, strip_tags(esc_js($js_conversion))); // This was previously sanitized. strip tags is not intended to sanitize and is used for a different purpose. 576 // This was previously sanitized. strip tags is not intended to sanitize and is used for a different purpose. 577 if ($database_column2) update_option($database_column2, strip_tags(esc_js($js_conversion))); 489 578 if ($database_column3) update_option($database_column3,(int)get_option($database_column3)+1); 490 579 if ($database_column4 and empty(get_option($database_column4))) update_option($database_column4, time());// Nothing to sanitize here, its unix time(); … … 493 582 if ($database_column2) update_option($database_column2, ''); 494 583 } elseif ($type=='reset_all_data') { 495 if ($database_column1) update_option($database_column1, 0); 496 if ($database_column2) update_option($database_column2, ''); 497 if ($database_column3) update_option($database_column3, 0); 498 if ($database_column4) update_option($database_column4, 0); 584 tmip_reset_delete_plugin_data(2); 499 585 } 500 586 … … 503 589 // Visitor tracker 504 590 } elseif (tmip_codes_usage_stats_data and $type=='vis_tr_stats') { 505 $output['vis_tr_queries_cnt']=(int)get_option( 'tmip_stat_vis_tr_query');506 if ($v=get_option( 'tmip_stat_vis_tr_hjconv')) {591 $output['vis_tr_queries_cnt']=(int)get_option(tmip_vis_trk_ploads_curr_opt); 592 if ($v=get_option(tmip_vis_trk_code_html_js_opt)) { 507 593 $v=stripslashes($v); 508 594 } else { … … 510 596 } 511 597 $output['vis_tr_htmljs_conv']=$v; 512 $output['vis_tr_first_use_unix']=(int)get_option( 'tmip_stat_vis_tr_first_used_unix');513 $output['vis_tr_total_queries']=(int)get_option( 'tmip_stat_vis_tr_total_qry');598 $output['vis_tr_first_use_unix']=(int)get_option(tmip_vis_trk_first_use_opt); 599 $output['vis_tr_total_queries']=(int)get_option(tmip_pag_trk_ploads_curr_opt); 514 600 515 601 if ($v=$output['vis_tr_queries_cnt']) { 516 602 $activity=tmip_stats_receive_trdata; 517 if (tmip_codes_usage_stats_data==2) $activity .=' ['.($v/1).']';603 if (tmip_codes_usage_stats_data==2) $activity .=' <span class="tmip_trk_usage_stat_num">( '.($v/1).' )</span>'; 518 604 } else { 519 605 $activity=tmip_stats_pending_trdata.''; … … 521 607 $output['vis_tr_stats']='<b>'.tmip_stats_activi_pagntra.'</b>: '.$activity; 522 608 if ($v=$output['vis_tr_htmljs_conv']) { 523 $output['vis_tr_stats'] .=' ,<b>'.tmip_stats_status_pagntra.'</b>: '.$v;609 $output['vis_tr_stats'] .='<br><b>'.tmip_stats_status_pagntra.'</b>: '.$v; 524 610 } 525 611 return $output; … … 527 613 // Page tracker 528 614 } elseif (tmip_codes_usage_stats_data and $type=='pag_tr_stats') { 529 $output['pag_tr_queries_cnt']=(int)get_option( 'tmip_stat_pag_tr_query');615 $output['pag_tr_queries_cnt']=(int)get_option(tmip_page_ploads_ou_opt); 530 616 if ($v=$output['pag_tr_queries_cnt']) { 531 617 $activity=tmip_stats_activet_pgdata; 532 //if (tmip_codes_usage_stats_data==2) $activity .=' ['.($v/1).']';618 if (tmip_codes_usage_stats_data==2) $activity .=' <span class="tmip_trk_usage_stat_num">( '.($v/1).' )</span>'; 533 619 } else { 534 620 $activity=tmip_stats_pending_pgdata.''; … … 557 643 $hook=add_submenu_page( 558 644 'index.php', // index,php to attached to dashboard menu 559 __(tmip_service_Nname.' Reports'),560 __(tmip_service_Nname.' Reports'),645 __(tmip_service_Nname.' '.tmip_wp_dashb_menu_rlink), 646 '<b style="color:#A4F9F7;letter-spacing: 0.05em;">'.__(tmip_service_Nname.'</b>'), 561 647 'publish_posts', 562 648 'tmip', // tmip to highlight the dashboard link … … 807 893 } 808 894 809 function tmip_reset_plugin_settings() {810 // Reset settings811 update_option(tmip_position_val, ''); // clear to trigger first time install state812 update_option(tmip_visit_tracker_val,'');813 update_option(tmip_page_tracker_val,'');814 }815 895 function tmip_remove_tabs_new_lines($str,$option=1) { 816 896 if ($str) { … … 850 930 $codeAlert_neutral_text=NULL;; 851 931 932 $codeAlert_greenTitle=NULL; 852 933 $codeAlert_green_text=NULL; 853 934 $codeAlert_red_text=NULL; … … 879 960 $vtpTRpsDbVar=!empty($postVarVTpos) ? $postVarVTpos : get_option(tmip_position_val); // NULL before first saved settings 880 961 881 if (!$vtpTRpsDbVar or ($info_update and !trim(sanitize_text_field($_POST[tmip_visit_tracker_ val])))) {962 if (!$vtpTRpsDbVar or ($info_update and !trim(sanitize_text_field($_POST[tmip_visit_tracker_opt])))) { 882 963 $hide_div_target=array('sec_rate'); 883 964 } … … 889 970 ###### CHECK PROJECT CODE ALERT ########################################################### 890 971 // Project code is not present 891 $vistracker_db_source_code=trim(stripslashes(get_option(tmip_visit_tracker_ val)));892 $pagtracker_db_source_code=trim((get_option(tmip_page_tracker_ val)));972 $vistracker_db_source_code=trim(stripslashes(get_option(tmip_visit_tracker_opt))); 973 $pagtracker_db_source_code=trim((get_option(tmip_page_tracker_opt))); 893 974 894 975 /* Bug report 101721053351 … … 904 985 905 986 $postVarVisTr=NULL; 906 if (isset($_POST[tmip_visit_tracker_ val])) {907 $postVarVisTr=$_POST[tmip_visit_tracker_ val];987 if (isset($_POST[tmip_visit_tracker_opt])) { 988 $postVarVisTr=$_POST[tmip_visit_tracker_opt]; 908 989 /* 909 990 Bug report 101721053351 // wp_kses() bug converts & to & on wordpress hosted sites and ommits javascript tag 910 $postVarVisTr=wp_kses($_POST[tmip_visit_tracker_ val],$allowed_html,$allowed_protocols);991 $postVarVisTr=wp_kses($_POST[tmip_visit_tracker_opt],$allowed_html,$allowed_protocols); 911 992 */ 912 993 $postVarVisTr=tmip_unify_new_lines(trim(stripslashes($postVarVisTr))); … … 916 997 $postDBPageTCnp=NULL; 917 998 if ($vtpTRpsDbVar or $postVarVisTr or ($info_update and !$postVarVisTr)) { 918 $visTRpsDbVar=!empty($postVarVisTr) ? $postVarVisTr : get_option(tmip_visit_tracker_ val);999 $visTRpsDbVar=!empty($postVarVisTr) ? $postVarVisTr : get_option(tmip_visit_tracker_opt); 919 1000 // Project visitor tracker code is not placed 920 1001 if (!$visTRpsDbVar) { … … 952 1033 953 1034 // ###### Verify and convert an HTML code into JavaScript code to enhance statistics ##### 954 // or $source_code=get_option(tmip_visit_tracker_ val)1035 // or $source_code=get_option(tmip_visit_tracker_opt) 955 1036 if (!$haltUpdate and (!$postVarVisTr or ( 956 1037 $postVarVisTr and ($postVarVisTr<>$vistracker_db_source_code or … … 1025 1106 // Page tracker code contains visitor tracker code 1026 1107 $postVarPagTr=''; 1027 if (isset($_POST[tmip_page_tracker_ val])) {1028 $postVarPagTr=trim($_POST[tmip_page_tracker_ val]);1108 if (isset($_POST[tmip_page_tracker_opt])) { 1109 $postVarPagTr=trim($_POST[tmip_page_tracker_opt]); 1029 1110 if (strpos($postVarPagTr,'4684NR-IPIB')==false) { 1030 $postVarPagTr=tmip_sanitize_rebuild_page_tracker_code($_POST[tmip_page_tracker_ val]);1111 $postVarPagTr=tmip_sanitize_rebuild_page_tracker_code($_POST[tmip_page_tracker_opt]); 1031 1112 $postVarPagTr=str_replace('/script>"','\\\/script>"',$postVarPagTr); 1032 1113 } 1033 1114 } 1034 //$postVarPagTr=esc_js(tmip_remove_tabs_new_lines($_POST[tmip_page_tracker_ val]));1115 //$postVarPagTr=esc_js(tmip_remove_tabs_new_lines($_POST[tmip_page_tracker_opt])); 1035 1116 //$postVarPagTr=tmip_unify_new_lines(trim(stripslashes($postVarPagTr))); 1036 1117 //$postVarPagTr=html_entity_decode($postVarPagTr); 1037 1118 //$postVarPagTr=str_replace('/script>"','\\\/script>"',$postVarPagTr); 1038 1119 1039 $pagTRpsDbVar=!empty($postVarPagTr) ? $postVarPagTr : get_option(tmip_page_tracker_ val);1120 $pagTRpsDbVar=!empty($postVarPagTr) ? $postVarPagTr : get_option(tmip_page_tracker_opt); 1040 1121 if ($pagTRpsDbVar and strpos($pagTRpsDbVar,'4684NR-IPIB')!== false) { 1041 1122 if (empty($postVarPagTr) and $info_update) { … … 1090 1171 1091 1172 // Remove visitor tracker code 1092 if ($info_update and (!$postVarVisTr and get_option(tmip_visit_tracker_val)) or stristr($haltUpdate,'hu_visitor_tracker')) { 1173 if ($info_update and (!$postVarVisTr and get_option(tmip_visit_tracker_opt)) or 1174 stristr($haltUpdate,'hu_visitor_tracker')) { 1093 1175 if ($failedNonceCheck<>1 and $allowUpdate) { 1094 update_option(tmip_visit_tracker_ val,'');1176 update_option(tmip_visit_tracker_opt,''); 1095 1177 tmip_log_stat_data(array('type'=>'vis_tr_reset')); 1096 1178 } … … 1101 1183 } 1102 1184 // Remove page tracker code 1103 if ($info_update and (!$postVarPagTr and get_option(tmip_page_tracker_ val)) or stristr($haltUpdate,'hu_page_tracker')) {1185 if ($info_update and (!$postVarPagTr and get_option(tmip_page_tracker_opt)) or stristr($haltUpdate,'hu_page_tracker')) { 1104 1186 if ($allowUpdate) { 1105 update_option(tmip_page_tracker_ val,'');1187 update_option(tmip_page_tracker_opt,''); 1106 1188 tmip_log_stat_data(array('type'=>'pag_tr_reset')); 1107 1189 } … … 1121 1203 } 1122 1204 if ($allowUpdate) { 1123 update_option(tmip_visit_tracker_ val,$tmip_visit_tracker);1205 update_option(tmip_visit_tracker_opt,$tmip_visit_tracker); 1124 1206 tmip_log_stat_data(array('type'=>'vis_tr_reset')); 1125 1207 } … … 1142 1224 } 1143 1225 if ($allowUpdate) { 1144 update_option(tmip_page_tracker_ val,$tmip_page_tracker);1226 update_option(tmip_page_tracker_opt,$tmip_page_tracker); 1145 1227 tmip_log_stat_data(array('type'=>'pag_tr_reset')); 1146 1228 } … … 1216 1298 <li><span>Full featured individual visitor <a href="'.tmip_home_page_url.'/website-analytics.htm" target="_blank">website statistics</a> IP tracker with visitor IP tagging and new activity email alerts</span></li> 1217 1299 <li><span>Visitor IP address GEO data, visitor IP address changes and computer IDs tracking</span></li> 1218 <li><span>Website visitor alerts, redirecting, and blocking based on custom rules by an IP address, computer ID, connection location, number of visits or page views, browser type, operating system, referrers, computer hardware specifications, etc.</span></li>1300 <li><span>Website visitor visual and sound alerts, redirecting, and blocking based on custom rules by an IP address, computer ID, connection location, number of visits or page views, browser type, operating system, referrers, computer hardware specifications, etc.</span></li> 1219 1301 <li><span>Mobile and desktop device statistics, targeting, redirection and browsing path control</span></li> 1220 <li><span>Individual Real-Time one-way message delivery to selected website visitors currently browsing a website</span></li>1221 <li><span>Web page, links, document and contact forms protection, IP based tracking and complete access control</span></li>1222 <li><span>Integrated IP tracking data visitor control interface within WordPress dashboard</span></li>1223 <li><span>EU GDPR Data Processing compliance with variable level of restrictions per jurisdiction</span></li>1302 <li><span>Individual Real-Time one-way message and popup alerts delivery for specific website visitors</span></li> 1303 <li><span>Web page, links, documents and contact forms protection. Advanced IP based tracking giving you a complete access control over your online content security</span></li> 1304 <li><span>Integrated and secure IP tracking data visitor control interface within WordPress dashboard</span></li> 1305 <li><span>EU GDPR Data Processing compliance tools with variable level of restrictions per jurisdiction</span></li> 1224 1306 <li><span><b>FREE</b> and advanced premium service <a href="'.tmip_premium_signup_page_url.'" target="_blank">subscriptions</a></span></li> 1225 1307 </ul> … … 1245 1327 <ol class="tmip_sett_list_ul"> 1246 1328 <li><span><a href="'.tmip_free_signup_page_url.'" target="_blank"><b>Select a '.tmip_lang_visitr_track_ic.' style</b></a> and generate a <b>JavaScript</b> version of '.tmip_service_Dname.' '.tmip_lang_visitor_tr_code.'. Confirm your '.tmip_service_Dname.' account. If you already have a '.tmip_service_Dname.' account, login to your account and click on "Add a New Project" menu link to generate a website '.tmip_lang_visitor_tr_code.' for your new WordPress website.<span> 1247 <br><span class="tmip_note_small"> * If you need to change a tracker style for an existing project, click on the "tracker code" link located to the right of the project\'s name on [My Projects] page.</span></li>1329 <br><span class="tmip_note_small"><i>* If you need to change a tracker style for an existing project, login to your account, go to [My Projects] page and click on the "tracker code" link located to the right of the project\'s name.</i></span></li> 1248 1330 1249 1331 <li><span><b>Copy the '.tmip_lang_visitor_tr_code.'</b> and <b>paste</b> it into the ['.tmip_lang_visitor_tr_code.'] input box below.</span></li> … … 1253 1335 <li><span><b>Verify</b> that a '.tmip_lang_visitr_track_ic.' appears on <b>ALL</b> pages of your WordPress website. If you are a Level 2+ '.tmip_service_Dname.' subscriber, you can enable an "'.tmip_lrn_invtrk_lnk.'" option. Login to your '.tmip_service_Dname.' account and click on [My Projects] menu link and then on the "edit" link for your project to locate this option.</span></li> 1254 1336 1255 <li><span><b>Access</b> your '.tmip_service_Dname.' console, login to WordPress and go to [Dashboard] => [TraceMyIP > Reports]</span></li>1337 <li><span><b>Access</b> your '.tmip_service_Dname.' console, login to WordPress and go to [Dashboard] => [TraceMyIP > '.tmip_submenu_reports.']</span></li> 1256 1338 </ol> 1257 1339 … … 1259 1341 <p><b>Step-by-step tutorials:</b> 1260 1342 <ul class="tmip_sett_list_ul"> 1261 <li>Installing <a href="'.tmip_wp_vistr_setup_tutorial.'" target="_blank"><b>WordPress Visitor Tracker</b></a> </li>1343 <li>Installing <a href="'.tmip_wp_vistr_setup_tutorial.'" target="_blank"><b>WordPress Visitor Tracker</b></a> and <a href="'.tmip_wp_vistr_troubleshooting_tutorial.'" target="_blank"><b>troubleshooting</b></a></li> 1262 1344 <li>Installing <a href="'.tmip_wp_block_ips_visit_control.'" target="_blank"><b>Page Tracker</b></a> to block IPs and control visitor access</li> 1263 1264 1345 <li>Adjusting <a href="'.tmip_wp_website_cache_optimization.'" target="_blank"><b>settings</b></a> for website cache or speed optimization plugins as these can prevent the visitor tracking code from loading properly.</li> 1265 1346 <li>See other <a href="'.tmip_wp_other_useful_tutorials.'" target="_blank"><b>most popular</b></a> tutorials</li> … … 1347 1428 <tr> 1348 1429 <td valign="top" style="padding-top:8px;" width="200"> 1349 <label for="'.tmip_visit_tracker_ val.'" class="tmip_input_box_name">'.tmip_lang_visitor_tr_code.':</label>1430 <label for="'.tmip_visit_tracker_opt.'" class="tmip_input_box_name">'.tmip_lang_visitor_tr_code.':</label> 1350 1431 <br><div style="margin:10px 0px;" class="tmip_tip_important">Use <b>JavaScript</b> '.tmip_lang_visitor_tr_code.'.</div> 1351 1432 '.$vis_tr_stats['vis_tr_stats'].$vis_tr_used_since.' 1352 1433 </td> 1353 1434 <td> 1354 <textarea id="'.tmip_visit_tracker_ val.'" name="'.tmip_visit_tracker_val.'" onClick="tmip_select_all(\''.tmip_visit_tracker_val.'\');" class="tmip_textarea" placeholder="'.trim(tmip_vis_trk_inp_placehl).'"'.$dcach.'>'.htmlentities(stripslashes(get_option(tmip_visit_tracker_val))).'</textarea>1435 <textarea id="'.tmip_visit_tracker_opt.'" name="'.tmip_visit_tracker_opt.'" onClick="tmip_select_all(\''.tmip_visit_tracker_opt.'\');" class="tmip_textarea" placeholder="'.trim(tmip_vis_trk_inp_placehl).'"'.$dcach.'>'.htmlentities(stripslashes(get_option(tmip_visit_tracker_opt))).'</textarea> 1355 1436 1356 1437 <div class="tmip_note">The '.tmip_lang_visitor_tr_code.' is used to track visitor IPs, computer IDs, traffic sources, IP locations and a complete set of website stats. … … 1370 1451 </td> 1371 1452 <td> 1372 <textarea id="'.tmip_page_tracker_ val.'" name="'.tmip_page_tracker_val.'" onClick="tmip_select_all(\''.tmip_page_tracker_val.'\');" class="tmip_textarea" placeholder="'.trim(tmip_pag_trk_inp_placehl).'"'.$dcach.'>'.stripslashes(get_option(tmip_page_tracker_val)).'</textarea>1453 <textarea id="'.tmip_page_tracker_opt.'" name="'.tmip_page_tracker_opt.'" onClick="tmip_select_all(\''.tmip_page_tracker_opt.'\');" class="tmip_textarea" placeholder="'.trim(tmip_pag_trk_inp_placehl).'"'.$dcach.'>'.stripslashes(get_option(tmip_page_tracker_opt)).'</textarea> 1373 1454 <div class="tmip_note">The '.tmip_lang_page_tr_code.' is used to block IPs, control access to pages, protect contact forms, send alerts and one-way messages to visitors. 1374 1455 <br>( '.$linkPTguide.' )</div> … … 1419 1500 } 1420 1501 return $string; 1421 }1422 function tmip_rate_review_section() {1423 tmip_load_css();1424 1425 $r=array('heart'); $thankYouIcon=$r[array_rand($r)]; // 'dove','child'1426 $r=array('hands-helping','leaf'); $helpNRateSec=$r[array_rand($r)];1427 1428 $output='1429 <h2 class="tmip_sec_title">1430 <i class="fa fa-'.$helpNRateSec.' fa-lg" style="color: #02970C; opacity: 0.8;"></i> Make '.tmip_service_Nname.' work better for you</h2>1431 <div class="ratehelp">1432 <i class="fa fa-star fa-1x tmip_outline-icon1" style="color: #FFFF00; opacity: 1.0;"></i>1433 <b>Ignite the Difference with a 5-Star rating.</b>1434 <blockquote>1435 <p>Your influence is <u>power</u>.</p>1436 <p>Since 2008, we\'ve sculpted '.tmip_service_Nname.' to amplify <b>your</b> experience. Your 5-star rating isn\'t just feedback; it\'s a heartfelt "Thank You!" that sparks our drive and guides others toward a stellar experience.</p>1437 <p>Positive reviews fuel our commitment to your satisfaction. If '.tmip_service_Nname.' has made a difference for you, a swift 5-star vote empowers your influence.</p>1438 <p><b>Thank you</b> for shaping our path with <b>your</b> enthusiasm <i class="fa fa-'.$thankYouIcon.' fa-lg" style="color: #AA0000; opacity: 0.8;"></i></p>1439 </blockquote>1440 <div style="width:100%; text-align:center;">1441 <button type="button" class="tmip_submit_button1" style="outline-color: transparent;" onclick="window.open(\'https://wordpress.org/support/plugin/tracemyip-visitor-analytics-ip-tracking-control/reviews/?rate=5#new-post\')"> Click to Rate '.tmip_service_Nname.'</button>1442 </div>1443 </div>1444 ';1445 return $output;1446 1502 } 1447 1503 function tmip_extract_string_between($string, $start, $end){ … … 1518 1574 } 1519 1575 } 1576 1577 function tmip_reset_delete_plugin_data($data_type=1) { 1578 global $wpdb; 1579 1580 # data_type: 1-reset all except no_reset flagged vars, 2-reset all to defaults, 3-delete all options, 4-add DB options defaults 1581 $operation=array(); 1582 $deleted_options=array(); 1583 1584 // Reset settings to default 1585 if ($data_type===1 or $data_type===2) { 1586 foreach (tmip_db_options_vars as $vars) { 1587 $no_reset=(isset($vars[$a='no_reset']) and $data_type===1 and $v=$vars[$a] and $v===1) ? $v : 0; 1588 if (isset($vars['db_var']) and isset($vars['default']) and $no_reset<>1) { 1589 update_option($vars['db_var'],trim($vars['default'])); 1590 $reset_options[$vars['db_var']]=$vars['default']; 1591 } 1592 } 1593 1594 // Delete all options from database 1595 } elseif ($data_type===3) { 1596 foreach (tmip_db_options_vars as $vars) { 1597 if (isset($vars['db_var']) and tmip_does_option_exist($vars['db_var'])) { 1598 delete_option($vars['db_var']); 1599 $deleted_options[]=$vars['db_var']; 1600 } 1601 } 1602 $deprecated_options=array('tmip_position','tmip_page_tracker_opt','tmip_visit_tracker_opt'); 1603 foreach ($deprecated_options as $db_opt) { 1604 if (isset($db_opt)) { 1605 delete_option($db_opt); 1606 $deleted_options[]=$db_opt; 1607 } 1608 } 1609 1610 // Add options to database 1611 } elseif ($data_type===4) { 1612 foreach (tmip_db_options_vars as $vars) { 1613 if (isset($vars['db_var']) and !tmip_does_option_exist($vars['db_var'])) { 1614 add_option($vars['db_var'],trim($vars['default'])); 1615 $add_options[$vars['db_var']]=$vars['default']; 1616 } 1617 } 1618 } 1619 1620 if (!empty($deleted_options)) $operation['deleted_options']=$deleted_options; 1621 if (!empty($reset_options)) $operation['reset_options']=$reset_options; 1622 if (!empty($add_options)) $operation['added_options']=$add_options; 1623 1624 return $operation; 1625 } 1626 1627 function tmip_does_option_exist($option_name) { 1628 global $wpdb; 1629 $option_value = get_option($option_name); 1630 if ($option_value !== false) { 1631 return true; 1632 } 1633 $option_exists = $wpdb->get_var($wpdb->prepare( 1634 "SELECT COUNT(*) FROM $wpdb->options WHERE option_name = %s", 1635 $option_name 1636 )); 1637 return $option_exists > 0; 1638 } 1639 1640 function tmip_is_front_end_page() { 1641 $patterns = array('/wp-admin/', 'admin.php?page', 'admin-ajax.php', 'wp-admin/', 'wp-content/plugins/', 'wp-admin/edit.php', 1642 'wp-admin/post.php'); 1643 $req = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; 1644 1645 if ($req) { 1646 // Escape and join patterns for regex 1647 $escaped_patterns = array_map(function($pattern) { 1648 return preg_quote($pattern, '/'); 1649 }, $patterns); 1650 $regex = '/' . implode('|', $escaped_patterns) . '/i'; 1651 1652 if (is_admin() or preg_match($regex, $req)) { 1653 return 1; 1654 } 1655 } 1656 return 0; 1657 } 1658 1659 function tmip_write_debug_info_to_file($vars) { 1660 if (1) { 1661 if (!is_array($vars)) $vars = array($vars); 1662 $plugin_dir = plugin_dir_path(__FILE__); 1663 $file_path = $plugin_dir . 'tmip_debug_info.txt'; 1664 $counter_file_path = $plugin_dir . 'tmip_counter.txt'; 1665 $current_time = date('Y-m-d H:i:s') . '.' . sprintf('%03d', (int) (microtime(true) * 1000) % 1000); 1666 $instance_number = 0; 1667 $fp = fopen($counter_file_path, 'c+'); 1668 if ($fp) { 1669 if (flock($fp, LOCK_EX)) { 1670 if (filesize($counter_file_path) > 0) { 1671 $counter_value = fgets($fp); 1672 $instance_number = $counter_value ? (int)$counter_value : 0; 1673 } else { 1674 $instance_number = 0; 1675 } 1676 $instance_number++; 1677 ftruncate($fp, 0); // truncate the file 1678 rewind($fp); // set the file pointer to the beginning 1679 fwrite($fp, $instance_number); 1680 fflush($fp); // flush the output 1681 flock($fp, LOCK_UN); // release the lock 1682 } 1683 fclose($fp); 1684 } 1685 $debug_info= "\n\n-----------------------------------------------------"; 1686 $debug_info .= "\nInstance: " . $instance_number . " ".$current_time . ""; 1687 $debug_info .= "\nDebug data:\n"; 1688 1689 foreach ($vars as $key => $value) { 1690 if (!empty($key) and is_string($key) and is_string($value)) $debug_info .= 'key ['.$key . ']: ' . $value . "\n"; 1691 } 1692 file_put_contents($file_path, $debug_info, FILE_APPEND); 1693 } 1694 } 1695 1520 1696 ?> -
tracemyip-visitor-analytics-ip-tracking-control/trunk/js/common.js
r2941696 r3127659 1 1 2 function tmip_select_all(id) { 2 3 document.getElementById(id).focus(); … … 5 6 ( function( $ ) { 6 7 $( document ).ready( function() { 8 9 setTimeout(function() { 10 // 🛠️ 🚀 🏆 ✨ 11 var items = [ 12 { 13 href: 'admin.php?page=tmip_admpanel_menu', 14 icon: '', 15 position: 1, 16 textClass: 'tmip_wp_menu_repo_link', 17 matchClass: 'wp-first-item' 18 }, 19 { 20 href: 'admin.php?page=tmip_rate_serv_lnk', 21 icon: '🏆', 22 position: 1, 23 textClass: 'tmip_wp_menu_rate_link', 24 matchClass: '' 25 }, 26 { 27 href: 'admin.php?page=tmip_lnk_wp_settings', 28 icon: '', 29 position: 1, 30 textClass: 'tmip_wp_menu_sett_link', 31 matchClass: '' 32 }, 33 { 34 href: 'admin.php?page=tmip_upgrade_page', 35 icon: '', 36 position: 1, 37 textClass: 'placeholder', 38 matchClass: '' 39 } 40 ]; 41 42 items.forEach(function(item) { 43 var selector = '#adminmenu a[href="' + item.href + '"]'; 44 45 if (item.matchClass) { 46 selector += '.' + item.matchClass; 47 } 48 49 var link = document.querySelector(selector); 50 if (link) { 51 // Create and style the span for the icon 52 var icon = document.createElement('span'); 53 icon.classList.add('tmip_wp_cmenu_icon'); 54 icon.textContent = item.icon; 55 var textSpan = document.createElement('span'); 56 textSpan.classList.add(item.textClass); 57 textSpan.textContent = link.textContent.trim(); 58 link.textContent = ''; 59 60 if (item.position === 1) { 61 link.appendChild(textSpan); // Add text span first 62 link.appendChild(icon); // Add icon after text span 63 } else if (item.position === 2) { 64 link.appendChild(icon); // Add icon first 65 link.appendChild(textSpan); // Add text span after icon 66 } 67 } 68 }); 69 }, 10); 70 7 71 $( '.rate-tmip-stars' ).find('a').hover( 8 72 function() { -
tracemyip-visitor-analytics-ip-tracking-control/trunk/languages/en.php
r3126412 r3127659 16 16 17 17 define("tmip_learnbl_url", tmip_service_url.'/learn/'); 18 define("tmip_userguide_url", tmip_service_url.'/learn/?wpmenu= user_manual');18 define("tmip_userguide_url", tmip_service_url.'/learn/?wpmenu=wpmenu_user_guide'); 19 19 define("tmip_support_url", tmip_service_url.'/contact.htm'); 20 20 define("tmip_acc_upgr_url", … … 23 23 // URLS 24 24 define("tmip_support_link", tmip_link(tmip_support_url,'<b>'.tmip_support_url.'</b>')); 25 define("tmip_lrn_invtrk_url", tmip_learnbl_url.'how-to-make-a-visitor-tracker-invisible-91/ ');25 define("tmip_lrn_invtrk_url", tmip_learnbl_url.'how-to-make-a-visitor-tracker-invisible-91/?wpp=wp_plugin_settings_page'); 26 26 27 27 // FORM STATEMENTS … … 38 38 // MAIN WP MENU 39 39 define("tmip_menu_name", tmip_service_Nname); 40 define("tmip_submenu_reports", 'reports'); 41 define("tmip_submenu_settings", 'settings'); 40 define("tmip_submenu_reports", 'My Projects'); 41 define("tmip_wp_dashb_menu_rlink", 'Reports'); 42 define("tmip_submenu_settings", 'plugin settings'); 42 43 define("tmip_submenu_unlock_frt", 'unlock features'); 43 44 define("tmip_submenu_my_ipv46_adr", 'my current IP'); 44 45 define("tmip_submenu_ip_tools", 'IP Tools'); 45 46 define("tmip_submenu_user_guide", 'User Guide'); 46 define("tmip_submenu_rate_service", ' rate '.tmip_service_Nname);47 define("tmip_submenu_rate_service", 'Be our hero'); 47 48 48 49 // SECTION TITLES … … 52 53 // INTERNAL CODES USAGE STATS 53 54 define("tmip_stats_receive_trdata", 'receiving data'); 54 define("tmip_stats_pending_trdata", ' ready');55 define("tmip_stats_pending_trdata", '[ ready ] - install visitor tracker code to start logging.'); 55 56 define("tmip_stats_activet_pgdata", 'active'); 56 define("tmip_stats_pending_pgdata", ' ready');57 define("tmip_stats_pending_pgdata", '[ ready ] - install page tracker code to activate.'); 57 58 define("tmip_stats_status_pagntra", 'status'); 58 define("tmip_stats_activi_pagntra", ' activity');59 define("tmip_stats_activi_pagntra", 'status'); 59 60 define("tmip_stats_optimi_pagntra", 'optimized'); 60 61 define("tmip_stats_used_since_unx", 'started'); … … 78 79 79 80 define("tmip_check_trk_code_inst", "<b>Verify that the tracker image now appears on <u>all</u> of your pages</b>. 80 <br>If you need a hidden version of the tracker, login to your '.tmip_service_Dname.'account. Click on the [edit] link located to the right of your project name on [My Projects] page, scroll down and enable the [Invisible Tracker] option.81 <br>If you need a hidden version of the tracker, login to your ".tmip_service_Dname." account. Click on the [edit] link located to the right of your project name on [My Projects] page, scroll down and enable the [Invisible Tracker] option. 81 82 82 83 <hr>* <b>If you're using a page cache plugin or optimization plugins</b>, consider purging the cache to ensure the tracking program loads correctly. If the tracker image remains absent on your pages, you might need to temporarily disable your cache or optimization plugins to diagnose the issue. Once identified, adjust the configuration settings within those plugins to allow the tracker code to load properly."); -
tracemyip-visitor-analytics-ip-tracking-control/trunk/readme.txt
r3126412 r3127659 1 === Visitor IP Tracker, IP Stats Analytics &IP Control With Email Alerts ===1 === Visitor IP Tracker, IP Stats Analytics and IP Control With Email Alerts === 2 2 3 3 Contributors: TraceMyIP 4 Tags: visitor s, ip, address, tracker, email, alerts, website, blocker, analytics, stats, doorbell, counters, hits, redirect, ip blocker, ip tracker, widget, gdpr4 Tags: visitor,ip,tracker,stats,analytics 5 5 Requires at least: 2.0.4 6 6 Tested up to: 6.6 7 7 Requires PHP: 5.6 8 Stable tag: 2.6 08 Stable tag: 2.61 9 9 License: GPLv2 (or later) 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html 11 Donate link: https://www.tracemyip.org/signup/?wp=donate 11 12 Plugin URI: https://www.tracemyip.org 12 13 13 14 The Official TraceMyIP visitor IP stats tracker. IP location tracker, counter, visitor email alerts, IP blocker, GDPR analytics, statistics 15 14 The Official [TraceMyIP](https://www.tracemyip.org?wpp=readme_description) visitor IP tracker. IP location tracker, IP blocker, visitor email alerts, stats counter, GDPR analytics and statistics 16 15 17 16 == Description == 18 17 19 T he Official TraceMyIP Visitor IP Stats Tracker plugin features easy website analytics, visitor IP tracking with email alerts, hits counting, visitor IP blocking, IP redirecting, and IP access control.18 TraceMyIP Visitor IP Stats Tracker plugin features easy website analytics, visitor IP tracking with email alerts, hits counting, visitor IP blocking, IP redirecting, and IP access control. 20 19 21 20 = Powerful features that help to stay in control of website visitations = … … 23 22 **Optimized for current web technology** - accurately capturing all real-time website visitor interaction 24 23 25 * [Website & Blog Visitor IP Tracking & Analytics](https://www.tracemyip.org/website-analytics.htm)26 * [Website Visits Email Alerts](https://www.tracemyip.org/website-visitors-alerts.htm )27 * [Visitor IP Blocking & Control](https://www.tracemyip.org/learn/how-to-block-an-ip-address-1017/)28 * [Individual Link Tracking](https://www.tracemyip.org/tools/link-click-tracker-ad-clicks-counter-ip-blocker/ )29 * [Tracking Visitor IP changes and Visitor Tagging](https://www.tracemyip.org/tools/online-address-book-web-contact-list/ )30 * [EU GDPR Compliant Website & Blog Tracking](https://www.tracemyip.org/GDPR-compliant-website-tracking-software.htm)24 * [Website and Blog Visitor IP Tracking and Analytics](https://www.tracemyip.org/website-analytics.htm?wpp=readme_txt) 25 * [Website Visits Email Alerts](https://www.tracemyip.org/website-visitors-alerts.htm?wpp=readme_txt) 26 * [Visitor IP Blocking and Control](https://www.tracemyip.org/learn/how-to-block-an-ip-address-1017/?wpp=readme_txt) 27 * [Individual Link Tracking](https://www.tracemyip.org/tools/link-click-tracker-ad-clicks-counter-ip-blocker/?wpp=readme_txt) 28 * [Tracking Visitor IP changes and Visitor Tagging](https://www.tracemyip.org/tools/online-address-book-web-contact-list/?wpp=readme_txt) 29 * [EU GDPR Compliant Website and Blog Tracking](https://www.tracemyip.org/GDPR-compliant-website-tracking-software.htm?wpp=readme_txt) 31 30 * [Cookieless Tracking](https://www.tracemyip.org/tools/cookie-free-tracking-analytics-eu-cookie-law-solution/) 32 31 * Provides additional features and targeted IP data to complement and associate with built-in dashboard statistics, Google Analytics, Semrush, Adobe Analytics, Statcounter, Clicky, Matomo Analytics and others. The IP address data can be matched to other stats packages and tagged to provide visit history data for specific site visits. 33 32 34 35 33 == Installation == 36 34 37 TraceMyIP visitor IP tracking, website statistics, and visitor email alerts with an IP control are instantly activated by registering a TraceMyIP.org account.35 TraceMyIP features like visitor IP tracking, website statistics, and visitor email alerts with an IP control are instantly activated by registering a TraceMyIP.org account. 38 36 39 37 **The installation consists of 3 simple steps:** 40 1. Install the TraceMyIP WordPress plugin 41 2. Register an account at www.tracemyip.org which will provide you with a unique visitor tracker code 42 3. Place the code into the "Visitor Tracker Code" input box at the bottom of the TraceMyIP WordPress plugin settings page 43 44 That's all! Now login to your TraceMyIP account and instantly observe website visitor activity in real-time. 45 46 **Steps to enable TraceMyIP.org tools for WordPress:** 47 48 * [Register](https://www.tracemyip.org/tools/website-visitors-counter-traffic-tracker-statistics/index.php?sto=1) a new TraceMyIP.org account by selecting a Visitor Tracker style or click on the [Add a New Project] menu button of an existing TraceMyIP account. 49 * Generate a Website Visitor Tracker code with TraceMyIP.org. If the code is lost, log in to your TraceMyIP account, go to "My Projects" page, and click on the "tracker code" link to recover your code. 50 * Install the Official Trace My IP plugin for WordPress and go to the TraceMyIP Settings page using the WordPress dashboard menu 51 * Paste the TraceMyIP Visitor Tracker code into the [visitor tracker code] input box and click on the Update Settings button 52 * Verify that the Visitor Tracker icon shows up on ALL pages of your WordPress site 53 * If the visitor IP blocking, redirecting, and page controls are required, generate a Page Tracker Code within your TraceMyIP project and place the code into the [Page Tracker Code] input box using the TraceMyIP plugin settings page 54 * To access the TraceMyIP console, login to your WordPress and go to [Dashboard] => [TraceMyIP Reports] 38 39 **1.** Install the TraceMyIP WordPress plugin 40 41 **2.** Register an account at www.tracemyip.org which will provide you with a unique visitor tracker code 42 43 **3.** Place the code into the "Visitor Tracker Code" input box at the bottom of the TraceMyIP WordPress plugin settings page 44 45 **That's all**! Now login to your TraceMyIP account and instantly observe website visitor activity in real-time. 46 47 **Detailed steps to enable TraceMyIP.org tools for WordPress:** 48 49 * [**Register**](https://www.tracemyip.org/tools/website-visitors-counter-traffic-tracker-statistics/index.php?sto=1&wpp=readme_txt) a new TraceMyIP.org account by selecting a Visitor Tracker style or click on the [**Add a New Project**] menu button of an existing TraceMyIP account. 50 * **Generate a Website Visitor Tracker code** with TraceMyIP.org. If the code is lost, log in to your TraceMyIP account, go to "**My Projects**" page, and click on the "**tracker code**" link to recover your code. 51 * **Install TraceMyIP plugin for WordPress** and go to the plugin settings page using the WordPress dashboard menu 52 * **Paste the TraceMyIP Visitor Tracker code** into the [**visitor tracker code**] input box and click on the Update Settings button below 53 * **Verify** that the Visitor Tracker icon shows up on **ALL** pages of your WordPress site, including the mobile pages 54 * **If you need visitor IP blocking**, redirecting, and page access controls, generate a **Page Tracker Code** within your TraceMyIP project and place the code into the [**Page Tracker Code**] input box using the TraceMyIP plugin settings page 55 * **To access the TraceMyIP console**, login to your WordPress and go to [Dashboard] => [TraceMyIP Reports]. If your browser is not displaying reports from WordPress dashboard, open a new browser tab and login directly at [**TraceMyIP.org**](https://www.tracemyip.org/?wpp=readme_txt) 55 56 * To configure GDPR Compliance Tools, log in to TraceMyIP.org and navigate to [My Account] => [Advanced Tracking Settings] 56 57 … … 58 59 = Support for TraceMyIP Visitor IP Tracker = 59 60 60 * For ALL tutorials and general information, please visit [Learn TraceMyIP](https://www.tracemyip.org/learn/ ) support site.61 62 * For the most frequently requested tutorials, please visit [Popular Guides](https://www.tracemyip.org/learn/most-popular-tracemyip-features-1594/) section.63 64 If you require further help with the TraceMyIP visitor IP tracker plugin or need to report an issue, please [contact](https://www.tracemyip.org/contact.htm) TraceMyIP support.61 * For ALL tutorials and general information, please visit [Learn TraceMyIP](https://www.tracemyip.org/learn/?wpp=readme_txt) support site. 62 63 * For the most frequently requested tutorials, please visit [Popular Guides](https://www.tracemyip.org/learn/most-popular-tracemyip-features-1594/?wpp=readme_txt) section. 64 65 If you have difficulties with installation and require further help with the TraceMyIP visitor IP tracker plugin or need to report an issue, please [contact](https://www.tracemyip.org/contact.htm?wpp=readme_txt) TraceMyIP support. 65 66 66 67 … … 69 70 = Is TraceMyIP Visitor IP Stats Tracker a free service? = 70 71 71 Yes. The FREE TraceMyIP subscription level that provides only basic essential information and features is completely free. Additional data storage space, enhanced visitor email alerts, and advanced GEO tracking and GDPR control options are available for premium subscriptions.72 TraceMyIP offers both free and premium subscriptions. The free subscription provides essential features at no cost. For advanced users, the premium subscription includes enhanced visitor email and sound alerts, advanced GEO tracking and GDPR controls, additional data storage, and other features. 72 73 73 74 = What are the primary TraceMyIP features? = 74 75 75 1. Website Visitor GEO IP Tracking, Address Book tagging and visitor IP email alerts and consoledoorbell-like alerts76 2. Visitor IP Changes Tracking and Computer ID Tracking (Subject to GDPR Directive)77 3. Advanced Website Analytics and Statistics (some functions are similar to Google Analytics but on a visitor level)78 4. Visitor IP Blocking and visitor Traffic Control via IP and Computer ID Redirecting Rules79 5. IndividualLink and Page Tracking and security access control based on an IP address and other visitor data76 1. Website Visitor GEO IP Tracking, Address Book tagging and visitor IP email alerts with console audio doorbell-like alerts 77 2. Visitor IP Address Changes Tracking and Computer ID Tracking (Subject to GDPR Directive) 78 3. Advanced Website Analytics and Statistics (some functions are similar to Google Analytics but also feature a visitor level analysis) 79 4. Visitor IP Blocking and Visitor Traffic Control with Redirecting Rules using IP, Computer ID, connection and user system info 80 5. Link and Page Tracking and security access control based on an IP address and other visitor data 80 81 6. AD Campaigns Tracking (some features are similar to Google Analytics + individual visitor tracking and surveillance) 81 82 7. EU GDPR-compliant visitor tracking with selective GEO IP masking, Computer IP masking, and other GDPR compliance tools 82 83 8. Compatibility with WordPress multisite, JavaScript tracking, and basic HTML tracking codes 83 9. User-configurable dashboard with advanced options, auto update and animated graphic charts84 9. User-configurable dashboard with advanced options, auto-update and animated graphic charts 84 85 85 86 = How TraceMyIP plugin is different from other website statistics services? = … … 111 112 3. Assign the name and select when and how often you would like to get notified via email 112 113 113 For a step-by-step tutorial, see [Visitor Email Alerts](https://www.tracemyip.org/learn/website-visitor-ip-alerts-and-email-notifications-1481/ )114 For a step-by-step tutorial, see [Visitor Email Alerts](https://www.tracemyip.org/learn/website-visitor-ip-alerts-and-email-notifications-1481/?wpp=readme_txt) 114 115 115 116 = How do I hide the visitor tracker on my pages? = … … 117 118 **To properly hide the tracker icon and make it invisible:** 118 119 119 1. Enable the [Invisible Tracker] option by going to [My Projects] page, clicking on the [edit] link for the project, and selecting the [Invisible Tracker] option. You can also refer to this [Invisible tracker](https://www.tracemyip.org/learn/how-to-make-a-visitor-tracker-invisible-91/ ) tutorial.120 1. Enable the [Invisible Tracker] option by going to [My Projects] page, clicking on the [edit] link for the project, and selecting the [Invisible Tracker] option. You can also refer to this [Invisible tracker](https://www.tracemyip.org/learn/how-to-make-a-visitor-tracker-invisible-91/?wpp=readme_txt) tutorial. 120 121 2. Navigate to the WordPress TraceMyIP plugin settings page, and using the "Tracker Icon Position" menu set the option to "Header Script". This may position the tracker on the left of the header or a footer, however, it will become completely invisible once the invisible tracker option is enabled. 121 122 … … 171 172 172 173 == Changelog == 174 175 = Version 2.61 = 176 - Geographical positioning maps updates 177 - Improved visitor tracking code integration with WordPress templates 178 - Improved dashboard website analytics chart rendering 179 - Fixed issues with some long page URLs not figginwebsite stats dashboard panels 180 - Updates menu style for WordPress plugin integration 173 181 174 182 = Version 2.60 =
Note: See TracChangeset
for help on using the changeset viewer.