El plugin de Betterdocs no tiene gestión de perfiles, por lo que he modificado un fichero del plugin para que añada el id de la categoría en la clase, y con css y jquery lo hago invisible y lo quito.
Modificamos /wp-content/themes/hello-elementor/header.php línea 17 aprox
<!--custom code natural--> <?php if( is_user_logged_in() ) { $admin = 0; $user = wp_get_current_user(); $roles = ( array ) $user->roles; if ( in_array( 'administrator', $roles ) ) { $admin = 'admin'; } } ?> <!--fin custom-->
Fichero modificado wp-content/plugins/betterdocs/public/betterdocs-shortcodes.php líneas 148 y 544 aprox. Buscar custom code natural
if (is_single() && ( $current_term_id == $term_id || ( $nested_subcategory == 1 && in_array($term_id, $ancestors ) ) ) ) { // set active category class in single page //custom code natural //$wrap_class = 'docs-single-cat-wrap current-category'; $wrap_class = 'docs-single-cat-wrap current-category'.' catid'.$term_id; //fin custom code natural $title_class = 'docs-cat-title-wrap active-title'; } elseif( BetterDocs_Helper::get_tax() == 'doc_category' && $current_cat_id->term_id == $term_id ) { //custom code natural //$wrap_class = 'docs-single-cat-wrap current-category'; $wrap_class = 'docs-single-cat-wrap current-category'.' catid'.$term_id; //fin custom code natural $title_class = 'docs-cat-title-wrap active-title'; } else { // by default docs page //custom code natural //$wrap_class = 'docs-single-cat-wrap'; $wrap_class = 'docs-single-cat-wrap'.' catid'.$term_id; //fin custom code natural $title_class = 'docs-cat-title-wrap'; }
// set active category class in single page //custom code natural //$wrap_class = 'docs-single-cat-wrap'; $wrap_class = 'docs-single-cat-wrap'.' catid'.$term_id; //fin custom code natural
wp-content/themes/hello-elementor/custom/custom.css
/*NO ADMIN*/ html:not(.admin) body .betterdocs-search-form-wrap, html:not(.admin) body .betterdocs-categories-wrap > .docs-single-cat-wrap:not(.catid76), html:not(.admin) body .privado{ display: none; }
wp-content/themes/hello-elementor/custom/custom.js
//Quitar elementos cuando no es admin, para que no se puedan inspeccionar jQuery(document).ready(function(){ jQuery('html:not(.admin) body .betterdocs-categories-wrap > .docs-single-cat-wrap:not(.catid76)').remove(); jQuery('html:not(.admin) body .privado').remove(); jQuery('html:not(.admin) body .betterdocs-search-form-wrap').remove(); });
Bloqueamos acceso a la página privada con el plugin Content Control