La documentación oficial de Easy Digital Downloads (EDD) indica que tenemos la opción del menú de WordPress para terminar sesión o usar un plugin, sin embargo en este artículo veremos como agregar esta opción como parte del menú principal y además hacer otras mejoras.
Resultado Final
Al final queremos obtener algo similar a lo que se muestra en la siguiente imagen:
Configuración EDD
Todas las páginas de EDD usan shorcodes, sin embargo para las páginas de acceso y descarga, se seleccionan en los Ajustes > General > Páginas del plugin EDD; para la página de pefil usamos directamente el shortcode edd_profile_editor,
Agregar Logout y mejoras en el menú de EDD
Actualmente se muestra la página de acceso siempre con las opciones de submenú de perfil y descargas.
Con el siguiente código ocultaremos estas opciones para un usuario que no esta registrado y cuando este registrado agregaremos el nombre del usuario y además la opción de menú para salir.
add_filter( 'wp_get_nav_menu_items', 'dcms_include_menu_items', 10, 3 );
function dcms_include_menu_items( $items, $menu, $args ) {
$parent_menu_id = 0;
$parent_key = 0;
if ( $menu->name !== 'Menu Principal' ) {
return $items;
}
foreach ( $items as $key => $item ) {
if ( $item->title === 'Acceso' ) {
$parent_menu_id = intval( $item->ID );
$parent_key = $key;
break;
}
}
if ( ! is_user_logged_in() ) {
foreach ( $items as $key => $item ) {
if ( intval( $item->menu_item_parent ) === $parent_menu_id ) {
unset( $items[ $key ] );
}
}
} else {
$current_user = wp_get_current_user();
$items[ $parent_key ]->title = ucfirst( $current_user->display_name );
$items[ $parent_key ]->url = "#";
$link = [
'title' => 'Salir',
'menu_item_parent' => $parent_menu_id,
'ID' => PHP_INT_MAX,
'url' => wp_logout_url( get_permalink() )
];
$items[] = (object) $link;
}
return $items;
}
En el código anterior:
- Usamos el hook wp_get_nav_menu_items que hace referencia a la función dcms_include_menu_items
- Dentro de la función usamos el objeto de parámetro de menú para comprobar si el menú es el que nos interesa, caso contrario retornamos la lista de items sin realizar cambios.
- Recorremos los items y ubicamos el item de menú con nombre Acceso, guardamos el ID y la posición en el array de items.
- Luego realizamos la comprobación si un usuario esta o no conectado, si no esta conectado, eliminamos todos los submenus del menú acceso.
- Caso contrario, si esta conectado, cambiamos el título de Acceso por el nombre del usuario actual, y también agregamos el ítem de menú salir, este tiene que ser un objeto.
- Finalmente retornamos los $items de menú.
Conclusión
Como has podido comprobar, puedes mejorar el comportamiento de los menús que ofrece el plugin Easy Digital Downloads EDD y en general de WordPress, en este artículo hemos visto cómo agregar, quitar y renombrar opciones de menú de forma simple a través de código.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores:
La entrada Logout menú en Easy Digital Downloads es un artículo reciente del sitio DecodeCMS.
0 Commentaires