Ajout clear transient pour debug

This commit is contained in:
Jean-Philippe Staelen 2026-01-21 10:36:19 +01:00
parent 14a7c216c5
commit f54f1060e8

View File

@ -171,6 +171,8 @@ class CRVI_Plugin {
add_action('acf/save_post', [self::class, 'check_intervenant_availability_on_save'], 20);
// Hook pour afficher les messages de conflit d'indisponibilités
add_action('admin_notices', [self::class, 'display_intervenant_conflicts_notice']);
// Hook pour vider le cache via paramètre URL
add_action('admin_init', [self::class, 'handle_clear_cache_request']);
}
/**
@ -1284,4 +1286,58 @@ class CRVI_Plugin {
delete_transient('crvi_intervenant_conflicts_' . $user_id);
}
}
/**
* Gère la demande de vidage du cache via paramètre URL
* Usage: ?crvi_clear_cache=1 ou ?crvi_clear_cache=traductions
*/
public static function handle_clear_cache_request() {
// Vérifier si le paramètre existe
if (!isset($_GET['crvi_clear_cache'])) {
return;
}
// Vérifier les permissions (seulement pour les admins)
if (!current_user_can('manage_options')) {
wp_die('Vous n\'avez pas les permissions nécessaires pour vider le cache.');
}
$cache_type = sanitize_text_field($_GET['crvi_clear_cache']);
global $wpdb;
switch ($cache_type) {
case 'traductions':
case 'capacites':
// Vider uniquement le cache des capacités de traduction
\ESI_CRVI_AGENDA\models\CRVI_TraductionLangue_Model::invalidate_cache();
$message = 'Cache des capacités de traduction vidé avec succès.';
break;
case 'all':
case '1':
case 'true':
// Vider tous les transients du plugin CRVI
$wpdb->query(
"DELETE FROM {$wpdb->options}
WHERE option_name LIKE '_transient_crvi_%'
OR option_name LIKE '_transient_timeout_crvi_%'"
);
$message = 'Tous les caches CRVI vidés avec succès.';
break;
default:
$message = 'Type de cache non reconnu. Utilisez: traductions, all, ou 1';
break;
}
// Afficher un message et rediriger
add_action('admin_notices', function() use ($message) {
echo '<div class="notice notice-success is-dismissible"><p>' . esc_html($message) . '</p></div>';
});
// Rediriger pour retirer le paramètre de l'URL
$redirect_url = remove_query_arg('crvi_clear_cache');
wp_safe_redirect($redirect_url);
exit;
}
}