<?php

defined('ABSPATH') || exit;
if (class_exists('GeotWP\\GeotargetingWP')) {
    add_filter('rocket_htaccess_mod_rewrite', '__return_false', 72);
    add_filter('rocket_cache_dynamic_cookies', 'rocket_add_geotargetingwp_dynamic_cookies');
    add_filter('rocket_cache_mandatory_cookies', 'rocket_add_geotargetingwp_mandatory_cookie');
    if (get_option('geotWP-deactivated')) {
        add_action('admin_init', 'flush_rocket_htaccess');
        add_action('admin_init', 'rocket_generate_config_file');
        delete_option('geotWP-deactivated');
    }
}
function rocket_activate_geotargetingwp()
{
    add_filter('rocket_htaccess_mod_rewrite', '__return_false', 72);
    add_filter('rocket_cache_dynamic_cookies', 'rocket_add_geotargetingwp_dynamic_cookies');
    add_filter('rocket_cache_mandatory_cookies', 'rocket_add_geotargetingwp_mandatory_cookie');
    flush_rocket_htaccess();
    rocket_generate_config_file();
}
add_action('geotWP/activated', 'rocket_activate_geotargetingwp', 11);
function rocket_deactivate_geotargetingwp()
{
    update_option('geotWP-deactivated', true);
    remove_filter('rocket_htaccess_mod_rewrite', '__return_false', 72);
    remove_filter('rocket_cache_dynamic_cookies', 'rocket_add_geotargetingwp_dynamic_cookies');
    remove_filter('rocket_cache_mandatory_cookies', 'rocket_add_geotargetingwp_mandatory_cookie');
    flush_rocket_htaccess();
    rocket_generate_config_file();
}
add_action('geotWP/deactivated', 'rocket_deactivate_geotargetingwp', 11);
function rocket_add_geotargetingwp_dynamic_cookies($cookies)
{
    return rocket_add_geot_cookies($cookies);
}
function rocket_add_geotargetingwp_mandatory_cookie($cookies)
{
    return rocket_add_geot_cookies($cookies);
}
function rocket_add_geot_cookies($cookies)
{
    $enabled_cookies = apply_filters('rocket_geotargetingwp_enabled_cookies', ['country']);
    foreach ($enabled_cookies as $enabled_cookie) {
        if (!in_array('geot_rocket_' . $enabled_cookie, $cookies, true)) {
            $cookies[] = 'geot_rocket_' . $enabled_cookie;
        }
    }
    return $cookies;
}