Crear Rol y otorgar permiso
Vemos que subscriptor no puede hacer nada Administrar info de perfil
Colaborador, solo editar sus propias publicaciones pero no publicarlas
autor crear y publicar sus publicaciones
ecitor crear y publicar las de el y las de los demas
admin todo
Ahora, creamos un colaborador, por ejmeplo, pero solo quiero que pueda publicar eventos, por ejemplo, solo eventos.
Plugin: members membership & user role editor plugin
Add new Rol
Lo llamamos por ejemplo planificador de eventos
Cuando se trata de dar permisos, wp va a tomar a los post types como post, entonces nos va a atomar todos los tipos de publicaciones.
Vamos a ir a donde tenemos registrado nuestro post type, en eventos en este caso y le vamos a decir que cuando se trate de dar permisos no lo tome como una entrada de post.
'capability_type' => 'event',
'map_meta_cap' => true,
Ahosi si volvemos a wp-admin, le podemos asignar a ese nuevo rol todo tipo de permisos para eventos porque nos aparece la pestañita eventos.
Ahora tenemos que darle a nuestro nuevo usuario esos permisos.
Vamos a su perfil de ususario.
Y le otorgamos el rol de planificador de eventos.
Bien, ahora, si me voy a wp-admin como administrador voy a ver que no esta la pestaña de evntos, tengo que ir a "roles", y en administrador marcar tambien todo relacionado con eventos.
Refresco y ya.
Registro de usuarios
Vamos a Settings, en wp-admin
Ajustes generales.
Ahora, "membership", marcamos "anyone can register"
"new user default role" -> "subcriber", ya que no puede hacer nada basicamente.
Ahora, tengo un boton de Login y otro de Sign up, le voy a poner en el header a Sign up la siguiente direccion para que redireccione al usuario al login de wp:
<a href="<?php echo esc_url(site_url('/wp-signup.php')); ?>"
class="btn btn--small btn--dark-orange float-left">Sign Up</a>
Ojo, para el registro mejor usar:
wp_registration_url()
<a href="<?php echo wp_registration_url(); ?>"
class="btn btn--small btn--dark-orange float-left">Sign Up</a>
Vamos al header nuevamente:
Vamos a usar la funcion:
is_user_logged_in()
Para ver si esta logueado o no:
Y para cerrar sesion wp tiene una funcione special:
wp_logout_url( string $redirect = '' )
Asi que nuestro codigo querdaria asi:
<?php
if(is_user_logged_in()){
?>
<a href="<?php echo wp_logout_url(); ?>"
class="btn btn--small btn--dark-orange float-left">Log Out</a>
<?php }else{ ?>
<div class="site-header__util">
<a href="#" class="btn btn--small btn--orange float-left push-right">Login</a>
<a href="<?php echo esc_url(site_url('/wp-signup.php')); ?>"
class="btn btn--small btn--dark-orange float-left">Sign Up</a>
<span class="search-trigger js-search-trigger"><i class="fa fa-search"
aria-hidden="true"></i></span>
</div>
<?php } ?>
get_avatar( mixed $id_or_email, int $size = 96, string $default = '', string $alt = '', array $args = null )
<img> tag for a user, email address, MD5 hash, comment, or post.get_current_user_id()
<?php
if(is_user_logged_in()){
?>
<a href="<?php echo wp_logout_url(); ?>"
class="btn btn--small btn--dark-orange float-left">
<span class="site-header__avatar">
<?php echo get_avatar(get_current_user_id(), 60); ?>
</span>
<span class="btn__text">Log Out</span>
</a>
wp_redirect()
//Redirige al inicio en Login
function redirectSubToFrontend(){
$ourCurrentUser = wp_get_current_user();
if(count($ourCurrentUser->roles) == 1 AND $ourCurrentUser->roles[0] == 'subscriber'){
wp_redirect(site_url('/'));
exit;
}
}
add_action('admin_init', 'redirectSubToFrontend');
//No se vea barra wp arriba
function noSubsAdminBar(){
$ourCurrentUser = wp_get_current_user();
if(count($ourCurrentUser->roles) == 1 AND $ourCurrentUser->roles[0] == 'subscriber'){
show_admin_bar( false );
}
}
add_action('wp_loaded', 'noSubsAdminBar');
wp_login_url( string $redirect = '', bool $force_reauth = false )
<div class="site-header__util">
<a href="<?php wp_login_url(); ?>"
class="btn btn--small btn--orange float-left push-right">Login</a>
<a href="<?php wp_registration_url(); ?>"
class="btn btn--small btn--dark-orange float-left">Sign Up</a>
//Login Logo redireccionar
function ourHeaderUrl(){
return esc_url(site_url('/'));
}
add_filter('login_headerurl', 'ourHeaderUrl');
//Sacar logo por defecto y cambiar estilos en login
function OurLoginCss(){
wp_enqueue_style('our_main_style', get_theme_file_uri('/bundled-assets.css'));
}
add_action('login_enqueue_scripts', 'OurLoginCss');
//Titulo de la web
function OurTitleLogin(){
return get_bloginfo('name');
}
add_filter('login_headertitle', 'OurTitleLogin');
No hay comentarios:
Publicar un comentario