<?php

defined('ABSPATH') || exit;
global $nginx_helper;
if (isset($nginx_helper)) {
    global $nginx_purger;
    function rocket_clear_cache_after_nginx_helper_purge()
    {
        if (!isset($_GET['nginx_helper_action'])) {
            return;
        }
        if (!check_admin_referer('nginx_helper-purge_all')) {
            return;
        }
        if ('done' !== sanitize_text_field(wp_unslash($_GET['nginx_helper_action']))) {
            return;
        }
        if (!current_user_can('rocket_purge_cache')) {
            return;
        }
        rocket_clean_domain();
    }
    add_action('admin_init', 'rocket_clear_cache_after_nginx_helper_purge');
    function rocket_clear_current_page_after_nginx_helper_purge()
    {
        if (!isset($_GET['nginx_helper_action'], $_GET['_wpnonce'])) {
            return;
        }
        if (!wp_verify_nonce(sanitize_key($_GET['_wpnonce']), 'nginx_helper-purge_all')) {
            return;
        }
        if (is_admin()) {
            return;
        }
        if (!current_user_can('rocket_purge_posts')) {
            return;
        }
        $referer = wp_get_referer();
        if (0 !== strpos($referer, 'http')) {
            $parse_url = get_rocket_parse_url(untrailingslashit(home_url()));
            $referer = $parse_url['scheme'] . '://' . $parse_url['host'] . $referer;
        }
        if (home_url('/') === $referer) {
            rocket_clean_home();
            return;
        }
        rocket_clean_files($referer);
    }
    add_action('init', 'rocket_clear_current_page_after_nginx_helper_purge');
    function rocket_clean_nginx_cache_home($root = '', $lang = '')
    {
        global $nginx_purger;
        if (!isset($nginx_purger)) {
            return;
        }
        $url = get_rocket_i18n_home_url($lang);
        $nginx_purger->purge_url($url);
    }
    add_action('after_rocket_clean_home', 'rocket_clean_nginx_cache_home', 10, 2);
    function rocket_clean_nginx_cache_url($url)
    {
        global $nginx_purger;
        if (!isset($nginx_purger)) {
            return;
        }
        if (!isset($_GET['type'], $_GET['_wpnonce'])) {
            return;
        }
        if (false !== strpos($url, 'index.html')) {
            return;
        }
        if ('page' === substr($url, -4)) {
            return;
        }
        $url = str_replace('*', '', $url);
        $nginx_purger->purge_url($url);
    }
    add_action('after_rocket_clean_file', 'rocket_clean_nginx_cache_url');
    function rocket_clean_nginx_helper_cache()
    {
        if (isset($_GET['nginx_helper_action'])) {
            return;
        }
        do_action('rt_nginx_helper_purge_all');
    }
    add_action('after_rocket_clean_domain', 'rocket_clean_nginx_helper_cache');
}