HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
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();