WooCommerce: cambia la scheda Il mio account predefinita
Pubblicato: 2022-08-02Come sai, una volta effettuato l'accesso e vai su Il mio account, WooCommerce mostra il contenuto della scheda "Dashboard" (chiamato anche "endpoint" della dashboard). La scheda Dashboard presenta l'impostazione predefinita " Ciao Rodolfo Melogli (non Rodolfo Melogli? Esci) Dalla dashboard del tuo account puoi visualizzare i tuoi ordini recenti, gestire gli indirizzi di spedizione e fatturazione e modificare la password e i dettagli dell'account. " Messaggio.
Ora, cosa succede se vogliamo impostare un'altra scheda Il mio account come predefinita all'accesso, ad esempio quella "Ordini" o "Download" per un'attività WooCommerce di download digitali? Bene, ci sono un paio di soluzioni rapide e non così veloci, buon divertimento!
Frammento PHP 1: reindirizza gli utenti a un'altra scheda Account personale
Reindirizzando a un'altra scheda quando le persone visitano quella "Dashboard", stiamo semplicemente dicendo che desideriamo nascondere l'intero contenuto della scheda Dashboard . Dovrai anche rimuovere la scheda Dashboard dal menu Il mio account.
/**
* @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;
}
}
In questo caso abbiamo selezionato la scheda "ordini". Puoi trovare altri ID della scheda Il mio account WooCommerce guardando questo altro post.
PHP Snippet 2: imposta un'altra scheda Il mio account come predefinita (ma mantieni il dashboard)
Potresti non voler nascondere affatto la scheda Dashboard e semplicemente impostarne un'altra come scheda predefinita . In questo caso, non possiamo utilizzare lo snippet di reindirizzamento, altrimenti il dashboard non verrà mai visualizzato.
Sfortunatamente, ad oggi, non esiste una soluzione pulita (anche se riordini le schede Account personale, il contenuto della scheda Dashboard verrà visualizzato al caricamento): dobbiamo trovare una soluzione alternativa.
Questa soluzione alternativa:
- sostituisce il contenuto della scheda "Dashboard" con il contenuto della scheda di tua scelta (ad es. contenuto della scheda "Download")
- rinomina il titolo della scheda "Dashboard" in quello che vuoi ("Download" nel nostro esempio)
- nasconde la scheda "Download" originale poiché l'abbiamo già ora
- legge la scheda "Dashboard" come prima scheda insieme al suo contenuto
Parte 1 – Sostituisci il contenuto della scheda Dashboard con il contenuto della scheda Download
Tieni presente che woocommerce_account_downloads() è la funzione responsabile dell'output della scheda Download. Puoi trovare il contenuto delle altre schede in questo altro tutorial.
/**
* @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;
}
}
}
}
Parte 2 – Rinomina il titolo della scheda Dashboard in Download
/**
* @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;
}
Parte 3 – Rimuovere la scheda Download originale
/**
* @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;
}
Parte 4 – Leggi la scheda Dashboard
Nota: è necessario salvare nuovamente i permalink di WordPress una volta che lo snippet è attivo.
/**
* @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;
}