prefix}atb_options
(option_id INT NOT NULL AUTO_INCREMENT
,option_name VARCHAR(191) NULL
,option_value VARCHAR(500)
,PRIMARY KEY (option_id));";
dbDelta($sql);
$sql="
CREATE TABLE IF NOT EXISTS {$wpdb->prefix}atb_pagehits
(hit_id INT NOT NULL AUTO_INCREMENT
,date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
,ip VARCHAR(191) NULL
,userid INT
,url VARCHAR(500)
,referrer VARCHAR(500)
,PRIMARY KEY (hit_id));";
dbDelta($sql);
}
register_activation_hook(__FILE__,'atb_activate');
if(atb_is_path('/wp-admin/plugins.php') && atb_is_path('plugin=admin-toolbox')) {?>
//atb_admin_notice();
}
function atb_admin_notice() {
if(!atb_is_path('page=admin-toolbox')){
require_once(ABSPATH."wp-includes/pluggable.php");
if(current_user_can('manage_options')) {
$settings_url=get_admin_url(null,'admin.php?page=admin-toolbox');?>
_e("The Admin Toolbox plugin is active, but isn't configured to do anything yet. Visit the configuration page to complete setup.",'Admin Toolbox');?>
}
}
}
function atb_add_action_links($links) {
$settings_url=get_admin_url(null,'admin.php?page=admin-toolbox');
$support_url='http://richardlerma.com/r1cm/';
$links[]='Support';
array_push($links,'Settings');
return $links;
}
add_filter('plugin_action_links_'.plugin_basename(__FILE__),'atb_add_action_links');
function atb_uninstall() {
global $wpdb;
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}atb_options;");
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}atb_pagehits;");
}
register_uninstall_hook(__FILE__,'atb_uninstall');
function atb_admin_impact() {
global $wpdb;
include_once('atb_admin_impact.php');
}
add_action('admin_enqueue_scripts','atb_admin_impact');
function atb_login_impact() {
global $wpdb;
include_once('atb_login_impact.php');
}
add_action('login_enqueue_scripts','atb_login_impact');
function atb_frontend_impact() {
global $wpdb;
include_once('atb_frontend_impact.php');
}
add_action('wp_enqueue_scripts','atb_frontend_impact');
function atb_current_user_role() {
global $current_user;
$user_role='';
if(is_user_logged_in()) {
$current_user=wp_get_current_user();
$user_info=get_userdata($current_user->ID);
$user_role=$user_info->roles;
}
return $user_role;
}
// PageHit Testing
function hit_page() {
global $current_user;
$userid=0;
if(is_user_logged_in()) {
$current_user=wp_get_current_user();
$userid=$current_user->ID;
}
$url=substr($_SERVER['REQUEST_URI'],0,250);
if(isset($_SERVER['HTTP_REFERER'])) $referrer=substr($_SERVER['HTTP_REFERER'],0,250); else $referrer='';
global $wpdb;
if(strpos($url,'&phv=1')===false)
$wpdb->query("
INSERT INTO {$wpdb->prefix}atb_pagehits(ip,userid,url,referrer)
VALUES ('{$_SERVER['REMOTE_ADDR']}','$userid','$url','$referrer');
");
$time=time();
if($time % 20===0) // 1/20 chance to run
$wpdb->query("
DELETE FROM {$wpdb->prefix}atb_pagehits
WHERE DATE_ADD(date,INTERVAL 365 DAY)prefix}atb_pagehits
WHERE date>DATE_FORMAT(NOW()-INTERVAL 365 DAY,'%Y-%m')
GROUP BY DATE_FORMAT(date,'%b %y')
ORDER BY DATE_FORMAT(date,'%y-%m')
";
$sum=$wpdb->get_results($sum_query, OBJECT);
foreach($sum as $sum_item) if($sum_item->day_avg>$max_pvd) {$max_pvd=$sum_item->day_avg; $max_pvt=$sum_item->visitors;} ?>
Traffic Summary
=number_format($max_pvt);?>
foreach($sum as $sum_item) { ?>
'>
=$sum_item->month;?>
=number_format($sum_item->visitors);?>
}?>
}
// PageHit Viewer
function view_hits() {
$uid=''; $date=''; $url='';
if(!empty($_POST)) {
$date=sanitize_text_field($_POST['date']);
$uid=sanitize_text_field($_POST['uid']);
$url=sanitize_text_field($_POST['url']);
}
if($uid=='' && $date=='' && $url=='') $row_limit='28'; else $row_limit='10000';
global $wpdb;
$hit_query="
SELECT hit_id
,DATE_ADD(date,INTERVAL -5 HOUR) as date
,ip,userid
,url,referrer
,IFNULL(CONCAT(u.display_name,' (',user_email,')'),'Visitor') as user
FROM {$wpdb->prefix}atb_pagehits ph
LEFT JOIN {$wpdb->prefix}users u ON u.ID=ph.userid
WHERE 1=1
AND (LENGTH('$uid')=0 OR userid='$uid')
AND (LENGTH('$date')=0 OR LEFT(DATE_ADD(date,INTERVAL -5 HOUR),10)='$date')
AND (LENGTH('$url')=0 OR url LIKE '$url%')
ORDER BY 1 DESC
LIMIT $row_limit;
";
$hits=$wpdb->get_results($hit_query, OBJECT);
$date_query="
SELECT DISTINCT DATE_FORMAT(DATE_ADD(date,INTERVAL -5 HOUR),'%Y-%m-%d') as date
FROM {$wpdb->prefix}atb_pagehits
ORDER BY 1 DESC
";
$dates=$wpdb->get_results($date_query, OBJECT);
$user_query="
SELECT DISTINCT userid
,IFNULL(CONCAT(u.display_name,' (',user_email,')'),'Visitor') as user
FROM {$wpdb->prefix}atb_pagehits ph
LEFT JOIN {$wpdb->prefix}users u ON u.ID=ph.userid
ORDER BY user
";
$users=$wpdb->get_results($user_query, OBJECT);
$url_query="
SELECT * FROM (
SELECT DISTINCT url
FROM {$wpdb->prefix}atb_pagehits
WHERE LOCATE('?',url)=0
UNION
SELECT DISTINCT LEFT(url,INSTR(url,'?')-1) as url
FROM {$wpdb->prefix}atb_pagehits
)ph
WHERE LENGTH(url)>1
AND LOCATE('auto-draft',url)=0
AND LOCATE('checkout/order-',url)=0
ORDER BY 1;
";
$urls=$wpdb->get_results($url_query, OBJECT);?>
$row_count=$wpdb->num_rows;
if($row_count>0):
global $hit;?>