countryCode)) { set_transient($transient_key, $data->countryCode, HOUR_IN_SECONDS * 24); return $data->countryCode; } return null; } // Block user based on country function aa_block_country_check() { if (is_admin()) return; $ip = aa_block_get_user_ip(); $require_consent = get_option('aa_block_consent_required', false); if ($require_consent && !isset($_COOKIE['aa_geo_consent'])) { return; } $user_country = aa_block_get_user_country_code($ip); if (!$user_country) return; $blocked_countries = array_map('trim', explode(',', get_option('aa_block_countries', ''))); $blocked_message = get_option('aa_block_message', __('Access denied for your region.', 'aa-block-country')); if (in_array(strtoupper($user_country), $blocked_countries)) { wp_die(esc_html($blocked_message)); } } add_action('init', 'aa_block_country_check'); // Register settings function aa_block_register_settings() { register_setting('aa_block_settings_group', 'aa_block_countries', ['type' => 'string', 'sanitize_callback' => 'sanitize_text_field']); register_setting('aa_block_settings_group', 'aa_block_message', ['type' => 'string', 'sanitize_callback' => 'sanitize_text_field']); register_setting('aa_block_settings_group', 'aa_block_consent_required', ['type' => 'boolean', 'sanitize_callback' => 'rest_sanitize_boolean']); } add_action('admin_init', 'aa_block_register_settings'); // Add admin menu function aa_block_admin_menu() { add_menu_page(__('Block Country Settings', 'aa-block-country'), __('Block Country', 'aa-block-country'), 'manage_options', 'aa-block-country', 'aa_block_settings_page', 'dashicons-shield-alt'); } add_action('admin_menu', 'aa_block_admin_menu'); // Admin settings page UI function aa_block_settings_page() { ?>

/>