public static function add_views($post_ID) { if ($post_ID > 0) { if (!wp_is_post_revision($post)) { switch (self::$options['count']) { case 0: self::$should_count = true; break; case 1: if (!is_user_logged_in()) { self::$should_count = true; } break; case 2: if (is_user_logged_in()) { self::$should_count = true; } break; } } if (self::$should_count) { if (self::$options['check_reflash']) { global $wpdb; $ip = preg_replace('/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR']); $wpdb->query('DELETE FROM ' . $wpdb->postviews_plus_reflash . ' WHERE look_time < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL ' . self::$options['timeout'] . ' SECOND)'); $data = $wpdb->get_var('SELECT `look_time` FROM ' . $wpdb->postviews_plus_reflash . ' WHERE `post_id` = "' . $post_id . '" AND `user_ip` = "' . $ip . '"'); if ($data) { return; } $wpdb->insert($wpdb->postviews_plus_reflash, array('post_id' => $post_ID, 'user_ip' => $ip), array('%d', '$s')); } $useragent = strtolower(trim($_SERVER['HTTP_USER_AGENT'])); $bot = false; if (is_array(self::$options['botagent'])) { $regex = '/(' . str_replace('@@@@@@', ')|(', preg_quote(implode(self::$options['botagent'], '@@@@@@'), '/')) . ')/si'; $bot = preg_match($regex, $useragent); } if ($bot) { $post_views = (int) get_post_meta($post_ID, self::$post_meta_botviews, true) + 1; update_post_meta($post_ID, self::$post_meta_botviews, $post_views); } else { $post_views = (int) get_post_meta($post_ID, self::$post_meta_views, true) + 1; update_post_meta($post_ID, self::$post_meta_views, $post_views); } } } }