web-dev-qa-db-fra.com

Supprimer la barre d'administration pour les abonnés

J'ai un site d'adhésion. Je dois désactiver la barre d'administration pour les abonnés.

J'ai utilisé ce code ci-dessous:

add_action('after_setup_theme', 'remove_admin_bar');

function remove_admin_bar() {
if (!current_user_can('administrator') && !is_admin()) {
  show_admin_bar(false);
}
}

ce qui supprime la barre d'administration de l'interface pour l'abonné, mais lorsqu'il accède à la page de profil wp-admin/profile.php, la barre d'administration y est toujours affichée.

J'utilise le plugin Paid Membership Pro qui, je pense, a empêché le code de fonctionner sur le backend des abonnés.

En outre, j'ai utilisé ce code pour supprimer la barre d'administration de partout:

if (!function_exists('disableAdminBar')) {

    function disableAdminBar(){

    remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );

    function remove_admin_bar_style_backend() {
      echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
    }

    add_filter('admin_head','remove_admin_bar_style_backend');

  }

}

add_filter('admin_head','remove_admin_bar_style_backend');

Mais ce code ne fonctionne pas non plus.

Je veux juste supprimer la barre d'administration pour les abonnés des pages frontend et backend.

Y a-t-il un code spécifique qui me manque? J'utilise Adhésion payante Pro .

Merci pour l'aide.

1
Jitendra Mishra

J'ai fait une recherche rapide à ce sujet et je ne pense pas que vous puissiez utiliser une fonction, comme indiqué dans le codex .

Remarque: Il n'est plus possible de masquer la barre d'outils lors de l'affichage des écrans d'administration, mais les utilisateurs peuvent la désactiver sur le front-end du site dans leur écran de profil.

Désactiver dans le frontend donne le même résultat que vous avez déjà fait.

Je suggère de le cacher avec css.

#wpadminbar {
    display: none;
}
html {
    padding-top: 0; // Move up the page's content by the bar's height
}
0
Gonçalo Figueiredo

L’équipe PMPro a créé un plugin pour cela: https://wordpress.org/plugins/hide-admin-bar-from-non-admins/

Le inclut les codes PHP et CSS nécessaires pour masquer complètement la barre d’administrateur: https://plugins.svn.wordpress.org/hide-admin-bar-from-non-admins/trunk/hide -admin-bar-from-non-admins.php

function habfna_hide_admin_bar_settings()
{
?>
    <style type="text/css">
        .show-admin-bar {
            display: none;
        }
    </style>
<?php
}
function habfna_disable_admin_bar()
{
    if(!current_user_can('administrator'))
    {
        add_filter( 'show_admin_bar', '__return_false' );
        add_action( 'admin_print_scripts-profile.php', 'habfna_hide_admin_bar_settings' );
    }
}
add_action('init', 'habfna_disable_admin_bar', 9);
0
Jason Coleman