<?php
/*****
Evitar el accceso a la página de perfil
****/
add_action( 'load-profile.php', 'evita_acceso_perfil' );
function evita_acceso_perfil() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_redirect( admin_url('edit.php?post_type=prova_classifica') );
exit();
}
}
/****
****Evitar que se acceda por URL a los datos
*****/
add_action('init', 'evita_acceso_todos' );
function evita_acceso_todos(){
if (current_user_can( 'manage_options' ) ) return;
$url = $_SERVER[‘PHP_SELF’];
if(strpos($_SERVER['REQUEST_URI'], "prova_classifica&all_posts") || strpos($_SERVER['REQUEST_URI'], "post_status=publish&post_type=prova_classifica")) {
wp_redirect( admin_url('edit.php?post_type=prova_classifica') );
exit();
}
}
/*****
Añadir estilo display: 'none'
****/
add_action( 'admin_enqueue_scripts', 'add_estilo_classifica' );
function add_estilo_classifica() {
?>
<style>
.no-propios-ocultos{
display:none !important;
}
</style>
<?php
}
/*****
Ocultar los centros no permitidos.
****/
add_action( 'admin_footer', 'controla_acceso_classifica' );
function controla_acceso_classifica() {
if(current_user_can('manage_options')) return; //Si es administrador no se ejecuta el código
$user_centro = wp_get_current_user();
?>
<script>
eliminar_tildes = (cadena) =>{
var letras = {
"á": "a", "é": "e", "í": "i", "ó": "o", "ú": "u",
"à": "a", "è": "e", "ì": "i", "ò": "o", "ù": "u", "ñ": "n",
"Á": "A", "É": "E", "Í": "I", "Ó": "O", "Ú": "U",
"À": "A", "È": "E", "Ì": "I", "Ò": "O", "Ù": "U", "Ñ": "N"
}
var buscados = /[áàéèíìóòúùñ]/ig;
return cadena.replace(buscados, function (e) { return letras[e] });
}
const usernombre = '<?=$user_centro->user_login?>';
const no_propios = document.querySelectorAll('.author-other') //Ocultar jugadores que no sean del centro.
const los_tabs = document.querySelectorAll('.acf-tab-button')//Ocultar otros centros.
menus = [document.querySelector('#menu-tools'),//Ocultar el menú de Herramientas.
document.querySelector('#wp-admin-bar-new-content'),//Ocultar el menú de + Nuevo
document.querySelector('#menu-dashboard'),//Ocultar el menú de Dashboard
document.querySelector('#menu-users'),//Ocultar el menú de Perfil.
document.querySelector('#menu-posts'),//Ocultar el menú de Post.
document.querySelector('#menu-comments'),//Ocultar el menú de Comentarios.
document.querySelector('#menu-posts-locations'),//Ocultar el menú de Locations.
document.querySelector('.subsubsub'),
]
function oculta(menu){
if(menu) menu.classList.add('no-propios-ocultos')
}
function tapa(tab){
tab_text = eliminar_tildes(tab.textContent)
if(!tab_text.includes(usernombre)) tab.classList.add('acf-hidden')
}
menus.forEach(oculta) //Ocultar todos los menús que proceda.
no_propios.forEach(oculta)//Ocultar listado de jugadores que no son del grupo (doble control, no es imprescindible)
los_tabs.forEach(tapa)//Ocultar centros que no correspondan al controlador.
</script>
<?php
}