<?php

defined( 'ABSPATH' ) || exit;

add_action( 'update_option_secupress_users-login_settings', 'science_after_update_single_options', 10, 2 );

/**
 * Add SecuPress move login pages to cache exclusion
 *
 * @since 2.9
 * @author Remy Perona
 *
 * @param array $urls URLs to exclude from cache.
 * @param bool  $show_safe_content show sensitive uris.
 * @return array Updated URLs to exclude
 */
function science_exclude_secupress_move_login( $urls, $show_safe_content = true ) {

	if ( ! $show_safe_content ) {
		return $urls;
	}

	if ( ! function_exists( 'secupress_move_login_get_slugs' ) ) {
		return $urls;
	}

	$bases = secupress_get_rewrite_bases();
	$slugs = secupress_move_login_get_slugs();

	foreach ( $slugs as $slug ) {
		$urls[] = $bases['base'] . ltrim( $bases['site_from'], '/' ) . $slug . '/?';
	}

	return $urls;
}
add_filter( 'science_cache_reject_uri', 'science_exclude_secupress_move_login', 2, 2 );

/**
 * Add SecuPress move login pages to cache exclusion when activating the plugin
 *
 * @since 2.9
 * @author Remy Perona
 */
function science_maybe_activate_secupress() {
	if ( function_exists( 'secupress_move_login_get_slugs' ) ) {
		science_activate_secupress();
	}
}
add_action( 'secupress.plugins.activation', 'science_maybe_activate_secupress', 10001 );

/**
 * Add SecuPress move login pages to cache exclusion when activating the move login module
 *
 * @since 2.9
 * @author Remy Perona
 */
function science_activate_secupress() {
	add_filter( 'science_cache_reject_uri', 'science_exclude_secupress_move_login', 2, 2 );

	// Update the WP science rules on the .htaccess.
	flush_science_htaccess();

	// Regenerate the config file.
	science_generate_config_file();
}
add_action( 'secupress.plugin.move_login.activate', 'science_activate_secupress' );

/**
 * Remove SecuPress move login pages from cache exclusion when deactivating the plugin
 *
 * @since 2.9
 * @author Remy Perona
 */
function science_maybe_deactivate_secupress() {
	if ( function_exists( 'secupress_move_login_get_slugs' ) ) {
		science_deactivate_secupress();
	}
}
add_action( 'secupress.deactivation', 'science_maybe_deactivate_secupress', 10001 );

/**
 * Remove SecuPress move login pages from cache exclusion when deactivating the move login module
 *
 * @since 2.9
 * @author Remy Perona
 */
function science_deactivate_secupress() {
	remove_filter( 'science_cache_reject_uri', 'science_exclude_secupress_move_login' );

	// Update the WP science rules on the .htaccess.
	flush_science_htaccess();

	// Regenerate the config file.
	science_generate_config_file();
}
add_action( 'secupress.plugin.move_login.deactivate', 'science_deactivate_secupress' );
