<?php
/**
 * Désinstallation : suppression des réglages et de la capacité.
 *
 * Les affiches déjà déposées dans la médiathèque ne sont pas touchées.
 */

defined( 'WP_UNINSTALL_PLUGIN' ) || exit;

/**
 * Nettoie un site : option et capacité.
 *
 * Tout passe par une fonction préfixée pour ne laisser aucune variable dans
 * l'espace global.
 */
function mairie_affiche_information_nettoyer_site() {
	delete_option( 'mairie_affiche_information_reglages' );

	if ( ! function_exists( 'wp_roles' ) ) {
		return;
	}

	foreach ( array_keys( wp_roles()->get_names() ) as $mairie_affiche_information_role ) {
		$mairie_affiche_information_objet = get_role( $mairie_affiche_information_role );
		if ( $mairie_affiche_information_objet ) {
			$mairie_affiche_information_objet->remove_cap( 'mairie_affiche_information_generer' );
		}
	}
}

/**
 * Point d'entrée : site courant, ou tous les sites en multisite.
 */
function mairie_affiche_information_desinstaller() {
	if ( ! is_multisite() ) {
		mairie_affiche_information_nettoyer_site();
		return;
	}

	$mairie_affiche_information_sites = get_sites(
		array(
			'fields' => 'ids',
			'number' => 0,
		)
	);

	foreach ( $mairie_affiche_information_sites as $mairie_affiche_information_site_id ) {
		switch_to_blog( $mairie_affiche_information_site_id );
		mairie_affiche_information_nettoyer_site();
		restore_current_blog();
	}
}

mairie_affiche_information_desinstaller();
