<?php

if (!defined('WP_UNINSTALL_PLUGIN')) {
    exit;
}
if (class_exists('ActionScheduler_QueueRunner')) {
    ActionScheduler_QueueRunner::instance()->unhook_dispatch_async_request();
}
if (class_exists('ActionScheduler_DBStore')) {
    ActionScheduler_DBStore::instance()->cancel_actions_by_group('rank-math');
}
if (true === apply_filters('rank_math_clear_data_on_uninstall', false)) {
    if (!is_multisite()) {
        rank_math_remove_data();
        return;
    }
    global $wpdb;
    $blog_ids = $wpdb->get_col("SELECT blog_id FROM {$wpdb->blogs} WHERE archived = '0' AND spam = '0' AND deleted = '0'");
    if (!empty($blog_ids)) {
        foreach ($blog_ids as $blog_id) {
            switch_to_blog($blog_id);
            rank_math_remove_data();
            restore_current_blog();
        }
    }
}
function rank_math_remove_data()
{
    rank_math_delete_options();
    rank_math_delete_meta('post');
    rank_math_delete_meta('user');
    rank_math_delete_meta('term');
    rank_math_drop_table('404_logs');
    rank_math_drop_table('redirections');
    rank_math_drop_table('redirections_cache');
    rank_math_drop_table('internal_links');
    rank_math_drop_table('internal_meta');
    rank_math_drop_table('analytics_gsc');
    rank_math_drop_table('analytics_objects');
    rank_math_drop_table('analytics_inspections');
    include dirname(__FILE__) . '/vendor/autoload.php';
    \RankMath\Role_Manager\Capability_Manager::get()->remove_capabilities();
    wp_cache_flush();
}
function rank_math_delete_options()
{
    global $wpdb;
    $where = $wpdb->prepare('WHERE option_name LIKE %s OR option_name LIKE %s', '%' . $wpdb->esc_like('rank-math') . '%', '%' . $wpdb->esc_like('rank_math') . '%');
    $wpdb->query("DELETE FROM {$wpdb->prefix}options {$where}");
}
function rank_math_delete_meta($table = 'post')
{
    global $wpdb;
    $where = $wpdb->prepare('WHERE meta_key LIKE %s OR meta_key LIKE %s', '%' . $wpdb->esc_like('rank-math') . '%', '%' . $wpdb->esc_like('rank_math') . '%');
    $wpdb->query("DELETE FROM {$wpdb->prefix}{$table}meta {$where}");
}
function rank_math_drop_table($name)
{
    global $wpdb;
    $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}rank_math_{$name}");
}