Juliano Wesker
11 de setembro de 2023
// Função para adicionar uma nova aba na conta do WooCommerce
function adicionar_aba_personalizada( $items ) {
$new_items = array();
// Loop pelos itens existentes
foreach ( $items as $key => $value ) {
$new_items[ $key ] = $value;
// Aqui, estamos verificando a posição onde a nova aba será inserida.
// No exemplo atual, a nova aba será adicionada após a aba 'orders' (Pedidos).
// Você pode controlar a posição alterando a condição abaixo.
// Por exemplo:
// - Para adicionar após a aba 'downloads', use: if ( 'downloads' === $key )
// - Para adicionar no início, antes de todas as abas, adicione a nova aba fora deste loop.
// - Para adicionar no final, após todas as abas, adicione a nova aba após o loop.
if ( 'orders' === $key ) {
$new_items['aba-teste'] = __( 'Aba Teste', 'woocommerce' );
}
}
return $new_items;
}
add_filter( 'woocommerce_account_menu_items', 'adicionar_aba_personalizada' );
// Função para adicionar o novo endpoint
function adicionar_endpoint_personalizado() {
// Adiciona o endpoint. Altere 'aba-teste' para o slug da sua aba
add_rewrite_endpoint( 'aba-teste', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'adicionar_endpoint_personalizado' );
// Função para exibir o conteúdo na nova aba
function exibir_conteudo_aba_personalizada() {
// Altere os títulos, descrições e shortcodes conforme necessário
echo '<h2>Título da Aba Teste</h2>';
echo '<p>Descrição da Aba Teste</p>';
echo do_shortcode('[seu_shortcode_aqui]');
}
add_action('woocommerce_account_aba-teste_endpoint', 'exibir_conteudo_aba_personalizada');
// Função para atualizar as regras de reescrita automaticamente
function atualizar_regras_ao_ativar_tema() {
adicionar_endpoint_personalizado();
flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'atualizar_regras_ao_ativar_tema' );
register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );
Deixe um comentário