Woocommerce – Como adicionar e excluir itens do menu na página Minha Conta
Uma dúvida que sempre vejo terem quando se trabalha com o Woocommerce é com relação a página Minha Conta (My Account), muitas vezes queremos tirar alguns itens do menu ou adicionar itens nesse menu. Recorremos muitas vezes aos plugins novamente, mas podemos fazer isso sem a necessidade deles, com um pouco que código.
Suprimindo itens do menu da página Minha Conta
Para remover itens do menu na página Minha Conta, você pode usar como exemplo esse código abaixo.
/* AQUI VOU SUPRIMIR ITENS EM MY ACCOUNT */
add_filter ( ‘woocommerce_account_menu_items’, ‘riggs_remove_my_account_links’ );
function riggs_remove_my_account_links( $menu_links ){
unset( $menu_links[‘downloads’] ); // Suprimir Downloads
unset( $menu_links[‘payment-methods’] ); // Suprimir Métodos de Pagamentos
//unset( $menu_links[‘edit-address’] ); // Endereços
//unset( $menu_links[‘dashboard’] ); // Painel
//unset( $menu_links[‘orders’] ); // Pedidos
//unset( $menu_links[‘edit-account’] ); // Detalhes da Conta
//unset( $menu_links[‘customer-logout’] ); // Sair
return $menu_links;
}
O que eu fiz aqui foi criar uma função chamada riggs_remove_my_account_links onde informo quais itens de menu devem ou não aparecer, observem que o “//” comenta a linha, sendo assim o comando unset só está valendo para Métodos de Pagamento e Downloads, sendo assim esses dois não aparecem na página Minha Conta.
Agora vamos criar nosso novo item
Eu estava precisando que o cliente em sua página de informações pudesse clicar em uma opção para verificar outra página com mais informações, então criei um novo item de menu e na segunda parte do código observem que faço o link com uma URL interna do website.
add_filter ( ‘woocommerce_account_menu_items’, ‘riggs_one_more_link’ );
function riggs_one_more_link( $menu_links ){
$new = array( ‘riggstext’ => ‘Informações Adicionais’ );
$menu_links = array_slice( $menu_links, 0, 4, true ) //Aqui eu ordeno a posição do menu.
+ $new
+ array_slice( $menu_links, 1, NULL, true );
return $menu_links;
}
add_filter( ‘woocommerce_get_endpoint_url’, ‘riggs_hook_endpoint’, 10, 4 );
function riggs_hook_endpoint( $url, $endpoint, $value, $permalink ){
if( $endpoint === ‘riggstxt’ ) {
$url = site_url(‘/informacoes-adicionais’); //URL para onde quero que o cliente seja direcionado
}
return $url;
}
Resumindo o que fiz foi adicionar ao menu o item Informações Adicionais, posicionei na ordem desejada e apontei para a URL correta.
É importante ressaltar que adaptei esse código do link https://rudrastyh.com/woocommerce/my-account-menu.html
Grande abraço e ajudem o Riggs compartilhando o artigo.
Bruno Riggs Pereira
EI! PSIU! NÃO ESQUECE, É RÁPIDO, COMPARTILHA ESSE ARTIGO COM AMIGOS E EM REDES SOCIAIS