File: /var/www/html/wp-content/plugins/uptime-monitor-plus/uptime-monitor-plus.php
<?php
/**
* Plugin Name: UptimeMonitor+
* Plugin URI: https://uptimemonitorplus.oimmei.com
* Description: Monitor your WordPress site's uptime, SSL certificates, and performance directly from your dashboard.
* Version: 1.0.1
* Requires PHP: 8.0
* Author: Oimmei
* Author URI: https://oimmei.com
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: uptime-monitor-plus
* Domain Path: /languages
*/
defined('ABSPATH') || exit;
define('UPTIMEMONITORPLUS_VERSION', '1.0.1');
define('UPTIMEMONITORPLUS_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('UPTIMEMONITORPLUS_PLUGIN_URL', plugin_dir_url(__FILE__));
define('UPTIMEMONITORPLUS_PLUGIN_BASENAME', plugin_basename(__FILE__));
// Include files
require_once UPTIMEMONITORPLUS_PLUGIN_DIR . 'includes/class-api-client.php';
require_once UPTIMEMONITORPLUS_PLUGIN_DIR . 'includes/class-admin.php';
require_once UPTIMEMONITORPLUS_PLUGIN_DIR . 'includes/class-ajax.php';
require_once UPTIMEMONITORPLUS_PLUGIN_DIR . 'includes/class-dashboard-widget.php';
/**
* Plugin activation hook.
*/
function uptimemonitorplus_activate() {
add_option('uptimemonitorplus_api_token', '');
add_option('uptimemonitorplus_domain_id', '');
add_option('uptimemonitorplus_api_base_url', 'https://uptimemonitorplus.oimmei.com');
add_option('uptimemonitorplus_extra_email', '');
add_option('uptimemonitorplus_do_activation_redirect', true);
}
register_activation_hook(__FILE__, 'uptimemonitorplus_activate');
/**
* Redirect to plugin page after activation.
*/
function uptimemonitorplus_activation_redirect() {
if (get_option('uptimemonitorplus_do_activation_redirect', false)) {
delete_option('uptimemonitorplus_do_activation_redirect');
if (!isset($_GET['activate-multi'])) {
wp_safe_redirect(admin_url('tools.php?page=uptimemonitorplus'));
exit;
}
}
}
add_action('admin_init', 'uptimemonitorplus_activation_redirect');
/**
* Plugin deactivation hook.
* Deletes transients but keeps options.
*/
function uptimemonitorplus_deactivate() {
global $wpdb;
$wpdb->query(
$wpdb->prepare(
"DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s",
'_transient_uptimemonitorplus_%',
'_transient_timeout_uptimemonitorplus_%'
)
);
}
register_deactivation_hook(__FILE__, 'uptimemonitorplus_deactivate');
/**
* Load plugin text domain for translations.
*/
function uptimemonitorplus_load_textdomain() {
load_plugin_textdomain(
'uptime-monitor-plus',
false,
dirname(UPTIMEMONITORPLUS_PLUGIN_BASENAME) . '/languages'
);
}
add_action('plugins_loaded', 'uptimemonitorplus_load_textdomain');
/**
* Register admin menu under Tools.
*/
function uptimemonitorplus_admin_menu() {
add_submenu_page(
'tools.php',
'UptimeMonitor+',
'UptimeMonitor+',
'manage_options',
'uptimemonitorplus',
'uptimemonitorplus_admin_page'
);
}
add_action('admin_menu', 'uptimemonitorplus_admin_menu');
/**
* Render admin page.
*/
function uptimemonitorplus_admin_page() {
$admin = new UptimeMonitorPlus_Admin();
$admin->render_page();
}
// Initialize AJAX handlers
UptimeMonitorPlus_Ajax::init();
// Initialize dashboard widget
UptimeMonitorPlus_Dashboard_Widget::init();