Cerca
Filtra la ricerca ...
Frase esatta
Filter by Custom Post Type
Categorie
Tags

Puoi disiscriverti da una o tutte le liste in qualunque momento

Come personalizzare la pagina account di WooCommerce aggiungendo un nuovo endpoint

Contenuto mancante

1- Disabilità ADS Block e ricarica la pagina

2- Ricarica la pagina

Prima di tutto spieghiamo cosa sono gli endpoints, giusto per fare un esempio di endpoints in tema WooCommerce sono quelli che troviamo sotto le impostazioni account.

Ogni endpoint esegue una specifica funzione; in questo articolo spiego come creare dei nuovi endpoints ed eseguire del codice PHP al loro interno o più semplicemente un contenuto.

woocommerce endpoints

Come creare un endpoint in WooCommerce

Poniamo di voler creare la pagina “Resi” con al suo interno un form per la compilazione dell’RMA, cosa che di default WooCommerce non gestisce, andiamo quindi ad implementarla da noi.

Per prima cosa scriviamo una funzione che va ad aggiungere nella pagina account, dove sono già presenti gli altri endpoints link, il nostro nuovo endpoint.

Ora è necessario creare il permalink, scriviamo quindi un’altra funzione in questo modo

Fate attenzione a ciò che scrivete qui, infatti “resi” è lo slug della pagina, ricordiamocelo perchè ci servirà nella prossima funzione.

A questo punto abbiamo creato la nostra nuova pagina che si chiama Resi, come facciamo a metterci un contenuto ?

Aggiungiamo un’azione in questo modo

Prestare molta attenzione alla parte in grassetto woocommerce_account_resi_endpoint , infatti è necessario inserire lo slug che abbiamo utilizzato in precedenza altrimenti il contenuto non si vedrà

Eseguiamo un controllo sull’esistenza dell’endpoint

Contenuto mancante

1- Disabilità ADS Block e ricarica la pagina

2- Ricarica la pagina

Il risultato è il seguente.

Nel mio caso ho eseguito uno shortcode per incorporare il form di reso WooCommerce realizzato con CF7 in questo modo : echo do_shortcode(‘[contact-form-7 id=”51″ title=”Modulo di reso”]’);

personalizzare pagina account woocommerce

 

 

Contenuto mancante

1- Disabilità ADS Block e ricarica la pagina

2- Ricarica la pagina

21 commenti su “Come personalizzare la pagina account di WooCommerce aggiungendo un nuovo endpoint

  1. Buongiorno,
    per prima cosa la ringrazio per la condivisione del codice, Pur essendo un novizio sono riuscito ad implementarlo nel mio sito senza difficoltà.

    Anche io devo visualizzare una Form tramite uno shortcode echo do_shortcode(‘[ninja_form id=4]’); e questo è l’unico passaggio che non riesco a far funzionare. Non mi visualizza il contenuto. Premetto che non ho modificato ancora il codice è ho fatto un puro copia/incolla di quello proposto.

    Altra informazione. è possibile ordinare diversamente le pagine degli Endpoints in modo che quella aggiunta non sia l’ultima dell’elenco? Vorrei far rimare ultima quella del logout.

    Grazie in anticipo per il supporto.
    Max

    • Buonasera Max,
      va applicato un filtro, ecco un esempio:

      function woo_endpoints_custom_order() {
      $args = array(
      'resi' => __( 'Resi', 'woocommerce' ),
      'edit-account' => __( 'Change My Details', 'woocommerce' ),
      'dashboard' => __( 'Dashboard', 'woocommerce' ),
      'orders' => __( 'Orders', 'woocommerce' ),
      'edit-address' => __( 'Addresses', 'woocommerce' ),
      'payment-methods' => __( 'Payment Methods', 'woocommerce' ),
      'customer-logout' => __( 'Logout', 'woocommerce' ),
      );
      return $args;
      }
      add_filter ( 'woocommerce_account_menu_items', 'woo_endpoints_custom_order' );

      Per il form non saprei, dovrei vederlo, ha scritto correttamente la parte php che richiama lo shortcode ? Se lo shortcode lo inserisce in una pagina il form si vede ?

  2. Buongiorno Alessandro,
    quello che ho postato è l’intero codice del file functions.php del tema child del sito.

    Se mi dici cosa può esserti utile e dove prenderlo lo posto

    Max

  3. Credo di non capire.
    Quello che ho fatto è stato inserire il suo codice all’interno del file functions, nulla di più ed è quello che ho condiviso prima.
    Lo shortcode invece è stato generato direttamente dal plugin ninja form.
    Ho sbagliato procedura?

    Max

    • Buonasera Max,

      le ho chiesto il codice intero perchè non avendo davanti il tema in uso non posso fare il debug, ad ogni modo se ha fatto un semplice copia ed incolla del mio e non funziona, i problemi posso essere diversi, andrebbe fatto il debug per capire il motivo del malfunzionamento.

      Quello che posso fare è offrirle una consulenza di un paio d’ore per fare il debug e capire se vi sono errori, purtroppo così a distanza in questo caso mi viene difficile aiutarla.

  4. Salve, ho riportato il codice così come è scritto qui.
    Tutto è andato per il meglio.
    L’endpoint è stato creato alla perfezione.
    Unico problema è che cliccando sul link mi porta alla pagina 404
    quindi penso che il comando

    add_action( ‘woocommerce_account_resi_endpoint’, function(){
    echo ‘Il mio contenuto qui’;
    } );
    Sia un po da riguardare.. perché a quanto pare o l’echo non fa bene il suo lavoro o non viene creata la pagina dal comando precedente.

    • Salve Stefano,

      l’echo non ha nulla a che vedere con il 404….

      E’ sufficiente andare nelle impostazioni dei permalink, cambiare impostazioni e salvare, poi rimettere quelle precedenti e risalvare, il problema sparirà.

  5. ciao Alessio

    io sto provando ad inserire il Codice Fiscale come endpoint in quanto mi serve che questo dato venga inserito per dare la possibilità al cliente di fare degli acquisti speciali. Chiaramente se mi ha fornito questo dato mi piacerebbe non richiederlo nuovamente ma averlo nella my account del cliente. Non capisco come farlo, io ho inserito questo codice

    premetto che uso il page builder Elementor

    https://codeshare.io/GkNMWA

    grazie

    antonio

  6. ciao Alessio

    grazie per la risposta. Ma probabilmente mi sono spiegato male. Io vorrei avere anche nella pagine my account la voce Codice Fiscale

    in questo modo invece ho solo il campo codice fiscale nel checkout

    come posso farlo?

    grazie

    antonio

  7. Buongiorno Alessio,
    ho fatto anche io una cosa del genere, e mi piacerebbe sapere come fa a validare i campi ed aggiornarli dopo l’invio.
    Ci sto lavorando da giorni e non riesco a venirne a capo. Inoltre non riesco a trovare niente in rete.
    Dopo i dettagli account io ho una nuova voce con i dettagli del membro di una associazione.
    Mentre per i dettagli account uso l’azione
    add_action(‘woocommerce_save_account_details_errors’, ‘ccmps_validate_wc_extra_profile_field’, 10, 2)
    e per salvare i dati uso
    add_action(‘woocommerce_created_customer’, ‘ccmps_update_extra_profile_field’);
    add_action(‘woocommerce_save_account_details’, ‘ccmps_update_extra_profile_field’);
    non riesco a trovare nulla che mi faccia la validazione solo per il nuovo endpoint edit-member.
    Ha qualche dritta o link da allegare.
    Grazie per la sua eventuale disponibilita
    Alessandro

Commenta l'articolo

Bisogno di postare codice ? Usa un servizio gratuito come Codeshare altrimenti WordPress formatta male il codice ed io non posso aiutarti!
Se necessiti delle modifiche al codice che ho scritto puoi chiedermi una consulenza, non ti risponderò nei commenti. Ti ringrazio per la collaborazione, sono certo che tu capisca.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.