Créer un utilisateur pour les statistiques uniquement

Dans le fichier functions.php du dossier du thème enfant, ajoutez cette fonction :


add_action( 'admin_head', function() {
    
    $stats_user_name = 'stats';
    $stats_user_password = 'stats1234';
    $stats_user_email = '[email protected]';

    if(!wp_roles()->is_role( 'shop_stats' )) add_role( 'shop_stats', 'Shop Statistics', get_role('shop_manager')->capabilities );
    if(!empty($stats_user_name) && !username_exists($stats_user_name) ) {
        $stats_user_id = wp_create_user($stats_user_name, $stats_user_password, $stats_user_email);
        $stats_user = get_user_by('id', $stats_user_id);
        $stats_user->remove_role('subscriber');
        $stats_user->add_role('shop_stats');
    }
    if(is_user_logged_in() && current( wp_get_current_user()->roles) == 'shop_stats'){
        $screen = get_current_screen();
        if ($screen->id != 'woocommerce_page_wc-admin') {
            wp_redirect( '/wp-admin/admin.php?page=wc-admin&path=/analytics/overview' );
        }
        remove_menu_page( 'index.php' );                                        //Dashboard
        remove_menu_page( 'edit.php' );                                         //Posts
        remove_menu_page( 'upload.php' );                                       //Media
        remove_menu_page( 'edit.php?post_type=page' );                          //Pages
        remove_menu_page( 'edit.php?post_type=product' );                       //Products
        remove_menu_page( 'wc-admin&path=/marketing' );                         //Marketing
        remove_menu_page( 'edit.php?post_type=elementor_library' );             //Elementor
        remove_menu_page( 'edit-comments.php' );                                //Comments
        remove_menu_page( 'themes.php' );                                       //Appearance
        remove_menu_page( 'plugins.php' );                                      //Plugins
        remove_menu_page( 'users.php' );                                        //Users
        remove_menu_page( 'tools.php' );                                        //Tools
        remove_menu_page( 'options-general.php' );                              //Settings
        remove_menu_page( 'wpcf7' );                                            //Contact Form 7
        remove_menu_page( 'woocommerce' );                                      //Woocommerce
        remove_menu_page( 'wpseo_workouts' );                                   //Yoast

        echo '';

    }
});


IMPORTANTE:

Por razones de seguridad, cambiar las siguientes variables al pegar el código en vuestro archivo:


    $stats_user_name = 'nom du nouvel utilisateur';
    $stats_user_password = 'votre mot de passe';
    $stats_user_email = 'info@votre_domaine.com';

En entrant dans le panneau d’administration, cette fonction créera un nouveau rôle « Statistiques de la boutique » et un nouvel utilisateur avec le nom et le mot de passe choisis ci-dessus.

Ce nouvel utilisateur peut être modifié depuis la section de gestion des utilisateurs WordPress. Il sera également possible de créer de nouveaux utilisateurs uniquement pour les statistiques de la gestion des utilisateurs WordPress elle-même en choisissant « Shop Statistics » dans l’option « User role ».