From 517fc79d92e0a8b1dfb2fe185ca9ee449869e5de Mon Sep 17 00:00:00 2001 From: Antoine M Date: Wed, 23 Apr 2025 15:10:36 +0200 Subject: [PATCH] REFACTOR refining role definitions and utilities --- includes/roles.php | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/includes/roles.php b/includes/roles.php index 64855b5..5260f08 100644 --- a/includes/roles.php +++ b/includes/roles.php @@ -32,10 +32,37 @@ function create_conseiller_role() $capabilities['wpml_manage_translation_assignments'] = true; - add_role('conseiller', 'Conseiller', $capabilities); } -add_action('init', 'create_conseiller_role'); + +/* ----------------------------------------------------------- + Initialisation des rôles personnalisés + -----------------------------------------------------------*/ +function init_custom_roles() +{ + if (!get_role('conseiller')) { + create_conseiller_role(); + } +} +add_action('init', 'init_custom_roles'); + + +/* ----------------------------------------------------------- + Supprimer et recréer le rôle conseiller + -----------------------------------------------------------*/ +function force_recreate_conseiller_role() +{ + remove_role('conseiller'); + create_conseiller_role(); +} + + +/* ----------------------------------------------------------- + Forcer la recréation du rôle conseiller (à utiliser une seule fois) + -----------------------------------------------------------*/ + +// Décommentez la ligne suivante pour forcer la recréation du rôle, puis commentez-la à nouveau +// add_action('init', 'force_recreate_conseiller_role', 30); /* ----------------------------------------------------------- Ajouter la capacité export_artisans_datas aux administrateurs et éditeurs @@ -44,13 +71,13 @@ function add_export_artisans_capability() { // Ajouter la capacité à l'administrateur $admin_role = get_role('administrator'); - if ($admin_role) { + if ($admin_role && !$admin_role->has_cap('export_artisans_datas')) { $admin_role->add_cap('export_artisans_datas'); } // Ajouter la capacité à l'éditeur $editor_role = get_role('editor'); - if ($editor_role) { + if ($editor_role && !$editor_role->has_cap('export_artisans_datas')) { $editor_role->add_cap('export_artisans_datas'); } }