????JFIF??x?x????'
Server IP : 104.21.48.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/tempvsty/peekmysite.com/wp-content/plugins/malcare-security/ |
Upload File : |
<?php if (!defined('ABSPATH')) exit; if (!class_exists('BVWPActLog')) : class BVWPActLog { public static $actlog_table = 'activities_store'; public $db; public $settings; public $bvinfo; public $request_id; public $ip_header; public $ignored_events; public function __construct($db, $settings, $info, $config) { $this->db = $db; $this->settings = $settings; $this->bvinfo = $info; $this->request_id = MCInfo::getRequestID(); $this->ip_header = array_key_exists('ip_header', $config) ? $config['ip_header'] : false; $this->ignored_events = array_key_exists('ignored_events', $config) ? $config['ignored_events'] : array(); } function init() { $this->add_actions_and_listeners(); } function get_post($post_id) { $post = get_post($post_id); $data = array('id' => $post_id); if (!empty($post)) { $data['title'] = $post->post_title; $data['status'] = $post->post_status; $data['type'] = $post->post_type; $data['url'] = get_permalink($post_id); $data['date'] = $post->post_date; } return $data; } function get_comment($comment_id) { $comment = get_comment($comment_id); $data = array('id' => $comment_id); if (!empty($comment)) { $data['author'] = $comment->comment_author; $data['post_id'] = $comment->comment_post_ID; } return $data; } function get_term($term_id) { $term = get_term($term_id); $data = array('id' => $term_id); if (!empty($term)) { $data['name'] = $term->name; $data['slug'] = $term->slug; $data['taxonomy'] = $term->taxonomy; } return $data; } function get_user($user_id) { $user = get_userdata($user_id); $data = array('id' => $user_id); if (!empty($user)) { $data['username'] = $user->user_login; $data['email'] = $user->user_email; $data['role'] = $user->roles; } return $data; } function get_blog($blog_id) { $blog = get_blog_details($blog_id); $data = array('id' => $blog_id); if (!empty($blog)) { $data['name'] = $blog->blogname; $data['url'] = $blog->path; } return $data; } function wc_get_attribute($attribute_id, $attribute_data = null) { $data = array('id' => $attribute_id); if (!is_null($attribute_data) && is_array($attribute_data)) { $data['name'] = $attribute_data['attribute_label']; $data['slug'] = $attribute_data['attribute_name']; } else { $attribute = wc_get_attribute($attribute_id); if (!empty($attribute)) { $data['name'] = $attribute->name; $data['slug'] = substr($attribute->slug, 3); } } return $data; } function wc_get_tax_rate($tax_rate_id, $tax_rate) { $data = array('id' => $tax_rate_id); if (!empty($tax_rate)) { $data['name'] = array_key_exists('tax_rate_name', $tax_rate) ? $tax_rate['tax_rate_name'] : ''; $data['country'] = array_key_exists('tax_rate_country', $tax_rate) ? $tax_rate['tax_rate_country'] : ''; $data['rate'] = array_key_exists('tax_rate', $tax_rate) ? $tax_rate['tax_rate'] : ''; } return $data; } function get_ip($ipHeader) { $ip = '127.0.0.1'; if ($ipHeader && is_array($ipHeader)) { if (array_key_exists($ipHeader['hdr'], $_SERVER)) { $_ips = preg_split("/(,| |\t)/", MCHelper::getRawParam('SERVER', $ipHeader['hdr'])); if (array_key_exists(intval($ipHeader['pos']), $_ips)) { $ip = $_ips[intval($ipHeader['pos'])]; } } } else if (array_key_exists('REMOTE_ADDR', $_SERVER)) { $ip = MCHelper::getRawParam('SERVER', 'REMOTE_ADDR'); } $ip = trim($ip); if (MCHelper::safePregMatch('/^\[([0-9a-fA-F:]+)\](:[0-9]+)$/', $ip, $matches)) { $ip = $matches[1]; } elseif (MCHelper::safePregMatch('/^([0-9.]+)(:[0-9]+)$/', $ip, $matches)) { $ip = $matches[1]; } return $ip; } function add_activity($event_data) { if (!function_exists('wp_get_current_user')) { @include_once(ABSPATH . "wp-includes/pluggable.php"); } $user = wp_get_current_user(); $values = array(); if (!empty($user)) { $values["user_id"] = $user->ID; $values["username"] = $user->user_login; } $values["request_id"] = $this->request_id; $values["site_id"] = get_current_blog_id(); $values["ip"] = $this->get_ip($this->ip_header); $values["event_type"] = current_filter(); $values["event_data"] = maybe_serialize($event_data); $values["time"] = time(); $this->db->replaceIntoBVTable(BVWPActLog::$actlog_table, $values); } function is_key_ignored($ignored_keys, $value) { $is_ignored = false; if (array_key_exists("post_types_regex", $ignored_keys)) { foreach ($ignored_keys['post_types_regex'] as $val) { if (MCHelper::safePregMatch($val, $value)) { return true; } } } if (array_key_exists("post_types", $ignored_keys)) { foreach ($ignored_keys['post_types'] as $val) { if ($val == $value) { return true; } } } return $is_ignored; } function user_login_handler($user_login, $user) { $event_data = array("user" => $this->get_user($user->ID)); $this->add_activity($event_data); } function user_logout_handler($user_id) { $user = $this->get_user($user_id); $event_data = array("user" => $user); $this->add_activity($event_data); } function password_reset_handler($user, $new_pass) { if (!empty($user)) { $event_data = array("user" => $this->get_user($user->ID)); $this->add_activity($event_data); } } function comment_handler($comment_id) { $comment = $this->get_comment($comment_id); $post = $this->get_post($comment['post_id']); $event_data = array( "comment" => $comment, "post" => $post ); $this->add_activity($event_data); } function comment_status_changed_handler($new_status, $old_status, $comment) { $post = $this->get_post($comment->comment_post_ID); $event_data = array( "comment" => $this->get_comment($comment->comment_ID), "post" => $post, "old_status" => $old_status, "new_status" => $new_status ); $this->add_activity($event_data); } function post_handler($post_id) { $post = $this->get_post($post_id); if ($this->is_key_ignored($this->ignored_events, $post["type"])) return; $event_data = array(); if (!isset($post["type"])) { $event_data["post"] = $post; } elseif ($post["type"] === "product") { $event_data["product"] = $post; } elseif ($post["type"] === "shop_order") { $event_data["order"] = $post; } else { $event_data["post"] = $post; } $this->add_activity($event_data); } function post_saved_handler($post_id, $post, $update) { $post = $this->get_post($post_id); if ($this->is_key_ignored($this->ignored_events, $post["type"])) return; $event_data = array(); if (!isset($post["type"])) { $event_data["post"] = $post; } elseif ($post["type"] === "product") { $event_data["product"] = $post; } elseif ($post["type"] === "shop_order") { $event_data["order"] = $post; } else { $event_data["post"] = $post; } $event_data["updated"] = $update; $this->add_activity($event_data); } function term_handler($term_id) { $term = $this->get_term($term_id); $event_data = array( "term" => $term, ); $this->add_activity($event_data); } function term_updation_handler($data, $term_id) { $term = $this->get_term($term_id); $event_data = array( "term" => $term, "new_term" => $data ); $this->add_activity($event_data); return $data; } function term_deletion_handler($term_id) { $event_data = array( "term" => array("id" => $term_id) ); $this->add_activity($event_data); } function user_handler($user_id) { $user = $this->get_user($user_id); $event_data = array( "user" => $user, ); $this->add_activity($event_data); } function user_update_handler($user_id, $old_userdata) { $new_userdata = $this->get_user($user_id); $event_data = array( "old_user" => $this->get_user($old_userdata->ID), "user" => $new_userdata, ); $this->add_activity($event_data); } function plugin_action_handler($plugin) { $event_data = array("plugin" => $plugin); $this->add_activity($event_data); } function theme_action_handler($theme_name) { $event_data = array("theme" => $theme_name); $this->add_activity($event_data); } function mu_handler($blog_id) { $blog = $this->get_blog($blog_id); $event_data = array( "blog" => $blog ); $this->add_activity($event_data); } function mu_site_handler($blog) { $event_data = array( "blog" => $this->get_blog($blog->blog_id) ); $this->add_activity($event_data); } function woocommerce_attribute_created_handler($attribute_id, $attribute_data) { $event_data = array( "attribute" => $this->wc_get_attribute($attribute_id, $attribute_data) ); $this->add_activity($event_data); } function woocommerce_attribute_handler($attribute_id) { $event_data = array( "attribute" => $this->wc_get_attribute($attribute_id) ); $this->add_activity($event_data); } function woocommerce_tax_rate_handler($tax_rate_id, $tax_rate) { $event_data = array( "tax_rate" => $this->wc_get_tax_rate($tax_rate_id, $tax_rate) ); $this->add_activity($event_data); } function woocommerce_tax_rate_deleted_handler($tax_rate_id) { $event_data = array( "tax_rate" => array("id" => $tax_rate_id) ); $this->add_activity($event_data); } function woocommerce_grant_product_download_access_handler($data) { $event_data = array( "download_id" => $data['download_id'], "user_id" => $data['user_id'], "order_id" => $data['order_id'], "product_id" => $data['product_id'] ); $this->add_activity($event_data); } function woocommerce_revoke_access_to_product_download_handler($download_id, $product_id, $order_id) { $event_data = array( "download_id" => $download_id, "product_id" => $product_id, "order_id" => $order_id ); $this->add_activity($event_data); } function woocommerce_shipping_zone_method_handler($instance_id, $method_id, $zone_id) { $event_data = array( "instance_id" => absint ($instance_id), "method_id" => $method_id, "zone_id" => $zone_id ); $this->add_activity($event_data); } function get_plugin_update_data($plugins) { $data = array(); if (!empty($plugins) && defined('WP_PLUGIN_DIR')) { foreach ($plugins as $plugin) { $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin); $title = isset($plugin_data['Name']) ? $plugin_data['Name'] : ''; $version = isset($plugin_data['Version']) ? $plugin_data['Version'] : ''; $install_data = array('title' => $title, 'version' => $version); array_push($data, $install_data); } } return $data; } function get_theme_update_data($themes) { $data = array(); if (!empty($themes)) { foreach ($themes as $theme) { $theme_data = wp_get_theme($theme); $title = isset($theme_data['Name']) ? $theme_data['Name'] : ''; $version = isset($theme_data['Version']) ? $theme_data['Version'] : ''; $install_data = array('title' => $title, 'version' => $version); array_push($data, $install_data); } } return $data; } function get_plugin_install_data($upgrader) { $data = array(); if ($upgrader->bulk != "1") { $plugin_data = $upgrader->new_plugin_data; $title = isset($plugin_data['Name']) ? $plugin_data['Name'] : ''; $version = isset($plugin_data['Version']) ? $plugin_data['Version'] : ''; $install_data = array('title' => $title, 'version' => $version); array_push($data, $install_data); } return $data; } function get_theme_install_data($upgrader) { $data = array(); $theme_data = $upgrader->new_theme_data; $title = isset($theme_data['Name']) ? $theme_data['Name'] : ''; $version = isset($theme_data['Version']) ? $theme_data['Version'] : ''; $install_data = array('title' => $title, 'version' => $version); array_push($data, $install_data); return $data; } function get_update_data($options) { $event_data = array('action' => 'update'); if ($options['type'] === 'plugin') { $event_data['type'] = 'plugin'; if (array_key_exists("plugin", $options)) { $options['plugins'] = array($options['plugin']); unset($options['plugin']); } $event_data['plugins'] = $this->get_plugin_update_data($options['plugins']); } else if ($options['type'] === 'theme') { $event_data['type'] = 'theme'; if (array_key_exists("theme", $options)) { $options['themes'] = array($options['theme']); unset($options['theme']); } $event_data['themes'] = $this->get_theme_update_data($options['themes']); } return $event_data; } function get_install_data($upgrader, $options) { $event_data = array('action' => 'install'); if ($options['type'] === 'plugin') { $event_data['type'] = 'plugin'; $event_data['plugins'] = $this->get_plugin_install_data($upgrader); } else if ($options['type'] === 'theme') { $event_data['type'] = 'theme'; $event_data['themes'] = $this->get_theme_install_data($upgrader); } return $event_data; } function upgrade_handler($upgrader, $data) { $event_data = array(); if (isset($data['action'])) { if ($data['action'] === 'update') { if ('core' === $data['type']) { return; } $event_data = $this->get_update_data($data); } else if ($data['action'] === 'install') { $event_data = $this->get_install_data($upgrader, $data); } } $this->add_activity($event_data); } function core_upgrade_handler($new_wp_version) { global $wp_version; $event_data = array(); $event_data['type'] = 'core'; $event_data['wp_core'] = array('prev_version' => $wp_version, 'new_version' => $new_wp_version); $this->add_activity($event_data); } /* ADDING ACTION AND LISTENERS FOR SENSING EVENTS. */ public function add_actions_and_listeners() { /* SENSORS FOR POST AND PAGE CHANGES */ add_action('pre_post_update', array($this, 'post_handler')); add_action('save_post', array($this, 'post_saved_handler'), 10, 3); add_action('post_stuck', array($this, 'post_handler')); add_action('post_unstuck', array($this, 'post_handler')); add_action('delete_post', array($this, 'post_handler')); /* SENSORS FOR COMMENTS */ add_action('comment_post', array($this, 'comment_handler')); add_action('edit_comment', array($this, 'comment_handler')); add_action('transition_comment_status', array($this, 'comment_status_changed_handler'), 10, 3); /* SENSORS FOR TAG AND CATEGORY CHANGES */ add_action('create_term', array($this, 'term_handler')); add_action('pre_delete_term', array($this, 'term_handler')); add_action('delete_term', array($this, 'term_deletion_handler')); add_filter('wp_update_term_data', array($this, 'term_updation_handler'), 10, 2); /* SENSORS FOR USER CHANGES*/ add_action('user_register', array($this, 'user_handler')); add_action('wpmu_new_user', array($this, 'user_handler')); add_action('profile_update', array($this, 'user_update_handler'), 10, 2); add_action('delete_user', array($this, 'user_handler')); add_action('wpmu_delete_user', array($this, 'user_handler')); /* SENSORS FOR PLUGIN AND THEME*/ add_action('activate_plugin', array($this, 'plugin_action_handler')); add_action('deactivate_plugin', array($this, 'plugin_action_handler')); add_action('switch_theme', array($this, 'theme_action_handler')); /* SENSORS FOR MULTISITE CHANGES */ add_action('wp_insert_site', array($this, 'mu_site_handler')); add_action('archive_blog', array($this, 'mu_handler')); add_action('unarchive_blog', array( $this, 'mu_handler')); add_action('activate_blog', array($this, 'mu_handler')); add_action('deactivate_blog', array($this, 'mu_handler')); add_action('wp_delete_site', array($this, 'mu_site_handler')); /* SENSORS USER ACTIONS AT FRONTEND */ add_action('wp_login', array($this, 'user_login_handler'), 10, 2); add_action('wp_logout', array( $this, 'user_logout_handler'), 5, 1); add_action('password_reset', array( $this, 'password_reset_handler'), 10, 2); /* SENSOR FOR PLUGIN, THEME, WPCORE UPGRADES */ add_action('upgrader_process_complete', array($this, 'upgrade_handler'), 10, 2); add_action('_core_updated_successfully', array($this, 'core_upgrade_handler'), 10, 1); /* SENSORS FOR WOOCOMMERCE EVENTS */ add_action('woocommerce_attribute_added', array($this, 'woocommerce_attribute_created_handler'), 10, 2); add_action('woocommerce_attribute_updated', array($this, 'woocommerce_attribute_handler'), 10, 1); add_action('woocommerce_before_attribute_delete', array($this, 'woocommerce_attribute_handler'), 10, 1); add_action('woocommerce_attribute_deleted', array($this, 'woocommerce_attribute_handler'), 10, 1); add_action('woocommerce_tax_rate_added', array($this, 'woocommerce_tax_rate_handler'), 10, 2); add_action('woocommerce_tax_rate_deleted', array($this, 'woocommerce_tax_rate_deleted_handler'), 10, 1); add_action('woocommerce_tax_rate_updated', array($this, 'woocommerce_tax_rate_handler'), 10, 2); add_action('woocommerce_grant_product_download_access', array($this, 'woocommerce_grant_product_download_access_handler'), 10, 1); add_action('woocommerce_ajax_revoke_access_to_product_download', array($this, 'woocommerce_revoke_access_to_product_download_handler'), 10, 3); add_action('woocommerce_shipping_zone_method_added', array($this, 'woocommerce_shipping_zone_method_handler'), 10, 3); add_action('woocommerce_shipping_zone_method_status_toggled', array($this, 'woocommerce_shipping_zone_method_handler'), 10, 3); add_action('woocommerce_shipping_zone_method_deleted', array($this, 'woocommerce_shipping_zone_method_handler'), 10, 3); } } endif;