CODE SNIPPETS
Personalizar o menu do WooCommerce: Exiba o nome do usuário logado ou ‘Entrar’ para visitantes
Esta função verifica se o usuário está logado e substitui o placeholder {{username}} no título do item do menu pelo primeiro nome de exibição do usuário. Se o usuário não estiver logado, o placeholder é substituído por “Entrar” e o link direciona para a página de login.
Caso deseje que o nome completo seja exibido, você precisará substituir as seguintes linhas:
//remover$partes_nome = explode(' ', $current_user->display_name);
$primeiro_nome = $partes_nome[0];
//adicionar$nome_completo = $current_user->display_name;
function exibir_primeiro_nome_usuario_no_menu( $menu_items ) {
global $current_user;
if ( is_user_logged_in() ) {
foreach ( $menu_items as $menu_item ) {
if ( strpos( $menu_item->title, '{{username}}' ) !== false ) {
if ( $current_user->display_name ) {
// Pega o primeiro nome do nome de exibição do usuário
$partes_nome = explode(' ', $current_user->display_name);
$primeiro_nome = $partes_nome[0];
} else {
$primeiro_nome = '';
}
// Substitui o placeholder {{username}} por "Olá, primeiro_nome"
$menu_item->title = str_replace( '{{username}}', 'Olá, ' . $primeiro_nome, $menu_item->title );
}
}
} else {
foreach ( $menu_items as $menu_item ) {
if ( strpos( $menu_item->title, '{{username}}' ) !== false ) {
// Define o título do item de menu como "Entrar"
$menu_item->title = 'Entrar';
// Define a URL do item de menu para a página de login
$menu_item->url = wp_login_url(); // URL da página de login do WordPress
}
}
}
return $menu_items;
}
add_filter( 'wp_nav_menu_objects', 'exibir_primeiro_nome_usuario_no_menu' );