WooCommerce : Modifier l'onglet Mon compte par défaut
Publié: 2022-08-02Comme vous le savez, une fois que vous vous connectez et accédez à Mon compte, WooCommerce affiche le contenu de l'onglet "Tableau de bord" (également appelé "endpoint" du tableau de bord). L'onglet Tableau de bord présente par défaut " Bonjour Rodolfo Melogli (pas Rodolfo Melogli ? Déconnectez-vous) À partir du tableau de bord de votre compte, vous pouvez afficher vos commandes récentes, gérer vos adresses de livraison et de facturation, et modifier votre mot de passe et les détails de votre compte. " message.
Maintenant, que se passe-t-il si nous voulons définir un autre onglet Mon compte comme onglet par défaut lors de la connexion, par exemple celui "Commandes" ou celui "Téléchargements" pour une entreprise de téléchargements numériques WooCommerce ? Eh bien, il existe quelques solutions rapides et moins rapides, profitez-en !

PHP Snippet 1 : Rediriger les utilisateurs vers un autre onglet Mon compte
En redirigeant vers un autre onglet lorsque les gens visitent celui du « Tableau de bord », nous disons simplement que nous souhaitons masquer tout le contenu de l'onglet Tableau de bord . Vous devrez également supprimer l'onglet Tableau de bord du menu Mon compte.
/**
* @snippet Redirect to new default tab @ WooCommerce My Account
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'template_redirect', 'bbloomer_my_account_redirect_to_downloads' );
function bbloomer_my_account_redirect_to_downloads(){
if ( is_account_page() && empty( WC()->query->get_current_endpoint() ) ) {
wp_safe_redirect( wc_get_account_endpoint_url( 'orders' ) );
exit;
}
}
Dans ce cas, nous avons sélectionné l'onglet "Commandes". Vous pouvez trouver d'autres identifiants d'onglet Mon compte WooCommerce en consultant cet autre article.
PHP Snippet 2 : Définir un autre onglet Mon compte par défaut (mais conserver le tableau de bord)
Vous ne voudrez peut-être pas du tout masquer l'onglet Tableau de bord et en définir simplement un autre comme onglet par défaut . Dans ce cas, nous ne pouvons pas utiliser l'extrait de redirection, sinon le tableau de bord ne s'affichera jamais.
Malheureusement, à ce jour, il n'existe pas de solution propre (même si vous réorganisez les onglets Mon compte, le contenu de l'onglet Tableau de bord s'affichera au chargement) - nous devons trouver une solution de contournement.
Cette solution de contournement :
- remplace le contenu de l'onglet "Tableau de bord" par le contenu de l'onglet de votre choix (par exemple, le contenu de l'onglet "Téléchargements")
- renomme le titre de l'onglet "Tableau de bord" comme vous le souhaitez ("Téléchargements" dans notre exemple)
- masque l'onglet "Téléchargements" d'origine tel que nous l'avons déjà maintenant
- lit l'onglet "Tableau de bord" comme premier onglet avec son contenu
Partie 1 - Remplacer le contenu de l'onglet Tableau de bord par le contenu de l'onglet Téléchargements
Veuillez noter que woocommerce_account_downloads() est la fonction responsable de la sortie de l'onglet Téléchargements. Vous pouvez retrouver le contenu des autres onglets dans cet autre tutoriel.

/**
* @snippet Replace tab content @ WooCommerce My Account
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'woocommerce_account_content', 'bbloomer_myaccount_replace_dashboard_content', 1 );
function bbloomer_myaccount_replace_dashboard_content() {
remove_action( 'woocommerce_account_content', 'woocommerce_account_content', 10 );
add_action( 'woocommerce_account_content', 'bbloomer_account_content' );
}
function bbloomer_account_content() {
global $wp;
if ( empty( $query_vars = $wp->query_vars ) || ( ! empty( $query_vars ) && ! empty( $query_vars['pagename'] ) ) ) {
woocommerce_account_downloads();
} else {
foreach ( $wp->query_vars as $key => $value ) {
if ( 'pagename' === $key ) {
continue;
}
if ( has_action( 'woocommerce_account_' . $key . '_endpoint' ) ) {
do_action( 'woocommerce_account_' . $key . '_endpoint', $value );
return;
}
}
}
}
Partie 2 - Renommer le titre de l'onglet Tableau de bord en Téléchargements
/**
* @snippet Rename tab @ WooCommerce My Account
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_filter( 'woocommerce_account_menu_items', 'bbloomer_myaccount_rename_dashboard_tab_title', 9999 );
function bbloomer_myaccount_rename_dashboard_tab_title( $items ) {
$items['dashboard'] = 'Downloads';
return $items;
}
Partie 3 - Supprimer l'onglet Téléchargements d'origine
/**
* @snippet Remove tab @ WooCommerce My Account
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_filter( 'woocommerce_account_menu_items', 'bbloomer_myaccount_remove_orders_tab', 9999 );
function bbloomer_myaccount_remove_orders_tab( $items ) {
unset( $items['downloads'] );
return $items;
}
Partie 4 – Onglet Readd Dashboard
Remarque : vous devez réenregistrer les permaliens WordPress une fois que l'extrait est actif.
/**
* @snippet Readd Dashboard tab @ WooCommerce My Account
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'init', 'bbloomer_myaccount_add_dashboard_endpoint' );
function bbloomer_myaccount_add_dashboard_endpoint() {
add_rewrite_endpoint( 'mydashboard', EP_ROOT | EP_PAGES );
}
add_filter( 'query_vars', 'bbloomer_query_vars', 0 );
function bbloomer_query_vars( $vars ) {
$vars[] = 'mydashboard';
return $vars;
}
add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_new_dashboard_to_my_account' );
function bbloomer_add_new_dashboard_to_my_account( $items ) {
$items = array( 'mydashboard' => 'Dashboard' ) + $items;
return $items;
}