Cerca

Salvaguardare le personalizzazioni su WooCommerce (aggiornato)

Localizzazione italiana assente in WooCommerce 2.1
Localizzazione italiana assente in WooCommerce 2.1

Personalizzare WooCommerceQuesto articolo è un aggiornamento dell’originale pubblicato il 1-2-2013.

Oggi mi è capitato di fare assistenza su WordPress, una situazione che credo meriti un articoletto.

Sono stato contattato per risolvere un problema ad una persona che, volendo personalizzare il suo e-commerce realizzato con WooCommerce, aveva fatto qualche modifica di troppo sui template del plugin, fino a causare le classiche “schermate bianche” di WordPress.

La parte più difficile, ma nemmeno troppo, è stato individuare nei file del plugin tutte le modifiche effettuate, fino a stanare quella che ha causato l’errore.

Per carità, il desiderio di personalizzare il proprio e-commerce è comprensibile e lecito, ma sarebbe meglio prima cautelarsi, visto che si può.

Con il plugin WooCommerce è possibile farlo, esattamente come ci si cautela riguardo le modifiche ai temi, utilizzando i temi child al posto dei temi per WordPress originali, una pratica che non smetterò mai di consigliare.

In pratica, basta creare una cartella “woocommerce” all’interno del tema utilizzato, meglio ancora se è un tema child, dove andranno copiati i file del template di WooCommerce che si intende modificare, basta avere l’accortezza di rispettare il percorso originale del file nella cartella del pugin, ad eccezione della cartella templates, che va omessa come suggerisce l’amico Alfredo nei commenti.

Così, se vogliamo andare a modificare il file related.php, che in WooCommerce normalmente si trova seguendo questo percorso:

wp-content/plugins/woocommerce/templates/single-product/related.php

non dovremo far altro che copiarlo nella cartella “woocommerce” che abbiamo appena preparato nel tema child, ed il nuovo percorso sarà questo:

wp-content/themes/tema-child/woocommerce/single-product/related.php

Fatto questo, modificheremo solo i file che ci interessano copiandoli nel tema child, ed in caso di problemi basterà solo andare a cercare le ultime modifiche, o il file modificato per ultimo, sostituirlo con una copia dell’originale e tutto andrà a posto.

Così facendo otteniamo un duplice risultato:

  1. lavoriamo su copie dei file originali del plugin, ed in caso di problemi cancellando le copie si azzerano le modifiche, ed il plugin riprende a funzionare
  2. si evitano sovrascritture delle modifiche effettuate, in caso di aggiornamento del plugin

Questa è una di quelle cose che mi fa apprezzare sempre di più il lavoro di quei bravi ninja di WooThemes…

Per tornare al problema all’origine di questo post, individuare tutti i file modificati dall’incauto utilizzatore di WooCommerce, in modo da avere traccia di tutte le modifiche e poterle riapplicare con facilità, non ho fatto molta fatica utilizzando il comando “diff” da terminale, fortunatamente disponibile, confrontando i file del plugin in versione modificata con quelli di un plugin di fresca installazione.

Il file che ha creato il problema, in particolare, era quello che conteneva la modifica più recente, come era facilmente prevedibile. Mi è bastato creare un child del plugin con gli altri file e tutto è tornato a funzionare.

Dovesse mancare il terminale, le differenze tra file si possono verificare lo stesso con un editor di testi con i cosiddetti, ad esempio come TextWrangler per Mac (che è pure gratuito).

Roberto Rota esperto WordPress e WooCommerce

Hai bisogno di aiuto con WooCommerce?

Se hai bisogno di assistenza per il tuo store WooCommerce, o anche solo per mettere in pratica queste istruzioni, contattami!

Cosa fare se il tema originale ha i suoi template per WooCommerce?

Molti temi compatibili con WooCommerce, installano i propri template per WooCommerce nella cartella originale del tema.

In questo caso, di solito cerco di spostare la cartella woocommerce del tema nella cartella del tema child, e modifico questi template.

In genere funziona nella maggior parte dei casi, anche se devo dire che, con alcuni temi, sono sorti dei problemi ed ho dovuto rimettere i template al loro posto.

Confesso che è un argomento che sto ancora studiando, essendo situazioni particolari che cambiano da tema a tema.

Condividi se ti è piaciuto!

Altri articoli che potrebbero interessarti:

Picture of Roberto Rota

Roberto Rota

Libero professionista, un "artigiano del web", lavoro nella comunicazione in rete da quando esiste Internet. Mi occupo principalmente di assistenza su WordPress e assistenza e consulenza WooCommerce, seguo la realizzazione di progetti web, in particolare siti di e-commerce, visibilità e comunicazione in rete. Il mio curriculum è su Linkedin, e mi puoi trovare anche su Instagram, FaceBook e Twitter.

DAI IL TUO CONTRIBUTO

Se il mio lavoro ti è stato di aiuto, contribuisci alla continuità di questo sito.
Basta una piccola donazione su PayPal, una pizza e una birra alla tua salute!

61 risposte

  1. Salve, ho provato a seguire il consiglio per modificare il sicurezza il file related.php (in verità solo per cambiare lo stile da h2 a h5.

    Purtroppo la modifica non ha avuto effetto
    child-teme/woocommerce/templates/single-product/related.php

    Qualche consiglio
    Grazie

      1. Anche a me non ha funzionato la modifica
        child-teme/woocommerce/templates/content_product.php
        Da cosa può dipendere?

  2. Ciao Roberto, ho un problema con le impostazioni di spedizione. Ho l’ultima versione di woo la 2.6
    e il plugin mi consigliava la shipping zone. Stupidamente però ho disabilitato tutte le modalità di spedizione che avevo in precedenza, e non le trovo più, sono sparite. Vorrei rimetterle perchè shipping zone non fa al caso mio.
    C’è un modo per recuperarle o per ripristinare le modalità di spedizione?
    Ho cercato in rete e per il ripristino dicono che bisogna inserire una stringa di codice in functions.php, ci ho provato ma non succede nulla, forse non lo inserisco nel posto giusto …bhooo…sto diventando matta!!! Puoi darmi dei suggerimenti, grazie mille!!!

    1. Ciao Stefania, se in qualche modo le hai cancellate non saprei proprio come fare a ripristinarle automaticamente.

      Ad ogni modo ti conviene adeguarti alle nuove modalità di spedizione, sono molto più versatili e potenti rispetto a prima, vale sicuramente la pena di perderci qualche ora per configurarle.

      rob

  3. Ciao Roberto ti chiedo una cosa su cui sto sbattendo la testa da giorni e non ne vengo a capo. Ho il codice della chat live ma lo voglio inserire solo sulle pagine di woocommerce e non in tutto wordpress. Come posso fare? Dove devo inserire il codice?

    Grazie di cuore
    Paolo

    1. Ciao Paolo, puoi chiudere lo script dentro un condizionale PHP tipo is_woocommerce(), che è il tag generico per le pagine di woocommerce, o utilizzando dei tag più mirati per restringere ancora di più il campo.

      In questo articolo ne parlo più dettagliatamente, e c’è il link alla pagina di documentazione ufficiale.

      Fammi sapere se ci riesci.

      rob

  4. Salve Roberto, sto cercando di modificare lo script del box di ricerca di woocommerce in modo da avere il match esatto con le parole digitate ma non so dove mettere mano! Puoi aiutarmi?
    Grazie.Ciao. Maurizio

    1. Ciao Maurizio, non mi è mai capitato di avventurarmi così a fondo nelle funzioni di ricerca di WordPress, temo ci sia da dare un’occhiata approfondita al codex.

      Hai provato a fare una ricerchina in rete? Magari trovi già la soluzione pronta…

      rob

  5. La buona prassi di creare una cartella del plugin all’interno del tema child dove apportare le modifche necessarie vale solo per woocommerce o per qualsiasi altro plugin? Grazie mille

      1. Grazie mille Roberto in effetti non ne venivo a capo con altri plugin. Se non erro lo stesso woocommerce lo permette solo per il contenuto della cartella template..
        Grazie ancora per gli utilissimi consigli che ho trovato qui e che mi stanno permettendo di iniziare a personalizzare WordPress.
        Emma

  6. Buongiorno,
    ho costruito un nuova tema child partendo da zero. Tutto ok.
    L’unico GROSSO problema è che non vengono richiamati in alcun modo i vari script della cartella assets/js. Di conseguenza se seleziono nel carrello una modalità di spedizione nel checkout viene resettata. Tutti gli script che permettono di aggiornare in tempo reale i prezzi non vengono caricati..i campi dell’indirizzo di spedizione si vedono anche se non seleziono il checkbox dedicato. Devo trovare il modo di richiamare i script dalla cartella assets.
    Come posso fare?

    Grazie

    1. Ciao Davide, con certi temi i child possono essere problematici.

      Puoi provare a guardare come vengono chiamati in causa gli script nel tema genitore, e ricreare la stessa condizione nel child.

      rob

      1. Ciao Roberto,
        nel precedente messaggio mi sono espresso male. Io ho creato un tema vero e proprio.. ma non è figlio di nessuno. Ho creato tutto da zero. Ho creato la cartella woocommerce all’interno del mio tema e ho modificato i vari file che mi interessavano (content-product, single-product, cartelle cart, loop, checkout, ecc.)
        Il problema è che non trovo (in altri temi) dove vengono richiamati gli script! Header e footer no di sicuro.. function nemmeno!

        Grazie

        1. Ciao Davide, per definizione un tema child richiede un tema genitore e serve proprio per non complicare la vita negli aggiornamenti di quest’ultimo, ma se hai creato un tema esplicitamente per quel sito che senso ha avere un tema child? A meno che non usi un qualche framework, ma questa è un’altra cosa (e devi seguire le regole del framework).

          rob

          1. Si appunto non ha senso. Mi ero espresso male.
            Il discorso è questo. Il sito che devo realizzare ha una parte dedicata all’e-commerce.
            Ha un tema creato esplicitamente per questo sito. E partire da un tema padre mi complica la vita visto che devo fare tutto exnovo.
            Ho creato la cartella “nome-tema” e all’interno ho creato la cartella woocommerce per modificare i vari file che mi interessavano (content-product, single-product, cartelle cart, loop, checkout, ecc.). Tutto funziona. La grafica pure. Sono solo appunto gli scritp assets/js che non vengono richiamati. Pensavo che come per le varie pagine (che funzionano) fosse così pure per gli script.
            Da dove vengono richiamati?

            Ho inserito nel file function pure queste stringhe per forzarne il caricamento.. ma nulla

            Grazie

  7. Ciao Roberto,

    approfitto della tua esperienza e gentilezza per tre quesiti,
    1- ho creato un sito woocommerce mediante template di personalizzazione, non mai creato alcun tema child in merito, ma ho solo modificato una label del file archive.php (woo-commerce) quindi nulla di importante, sono comunque interessato a conoscere e realizzare il tema child sia per il template che sto utilizzando in quando potrebbe essere utile per ulteriori lavori, tu sapresti dirmi come realizzare un tema child o dove raccogliere una buona documentazione in merito??
    2- sempre in merito woo-commerce cosa suggerisci come plugin per l’aggiornamento dei prodotti, considerando che ogni prodotto ha la sua scheda descrittiva che rispetta una formattazione SEO, oltre al relativo plugin SEO che richiede specifica configurazione per ciascun prodotto,,, e se non bastasse ho installato un plugin per google shooping e perciò ogni prodotto ha la sua parte di dati da inserire per questo plugin…
    E’ risolvibile???
    3- hai mai utilizzato WPML per estendere le lingue sul tuo progetto e-commerce?? io ci ho provato ed è successo un disastro totale… tu che mi dici??

    ti ringrazio della gentilezza e spero di non aver esagerato.
    Paul

    1. Ciao Paul

      1. qui ho scritto sul perché e il come dei temi child, spero risponda a qualche tua domanda

      2. qui non capisco la domanda, cosa intendi per “plugin per l’aggiornamento dei prodotti”?

      3. WPML lo uso spesso, è un ottimo sistema per la realizzazione dei siti multilingua. Per la buona riuscita del tutto, è fondamentale che il tema utilizzato sia compatibile con WPML.

      rob

      1. Grazie delle celere risposta,
        in merito la seconda domanda ti chiedevo qualè secondo te il plugin che permette il miglior aggiornamento dei prodotti per woo-commerce, esiste woo-commerce csv importer ad esempio, tu usi un plugin per i file csv per l’aggiornamento dei prodotti o fai un aggiornamento manuale?
        Paul

        1. Complimenti sull’articolo relativamente il tema child, sei stato molto chiaro, mi metto subito al lavoro per creare il mio tema child 🙂

          Paul

          1. Ho un unica perplessità, quando inserisco le righe dei file modificati, ad esempio ho modificato lo style.css in qualche riga, tu scrivi di inserire le singole righe modificate… ok ma non si perde la numerazione, oltre che il senso del codice ??
            Grazie

            1. Ciao Paul.
              Io metto solo le parti che modifico o che aggiungo, per comodità.

              La numerazione ed il senso del codice sono una comodità di lettura, il più delle volte.

              rob

        2. Alcuni dei clienti che seguo aggiornano manualmente, non hanno esigenza di una automazione.

          Altri invece utilizzano il CSV importer di WooThemes, dopo averne provati altri più economici ma meno efficaci.

          rob

  8. Ciao Rob, mi riferisco alla tua ultima risposta, come faccio a dire nel file style.css del tema child che la modifica che apporto riguarda woocommerce?
    Potresti suggerirmi qualcosa oppure indicarmi qualche guida? Non riesco a trovare niente a riguardo, ciao e grazie,

    Silvia

    1. Ciao Silvia, ID e classi CSS sono fatti apposta per distinguere gli elementi, intervenendo su una specifica classe modifichi solo gli elementi che la riguardano.

      In rete ci sono diverse guide ai CSS a vario livello, magari inizia da questa: Guida CSS di base, sullo stesso sito ne trovi anche di più avanzate.

      rob

  9. Ciao Rob, i tuoi consigli sono sacrosanti soprattutto per me che ho appena iniziato a scoprire il mondo wordpress. Io vorrei poter modificare il CSS di woocommerce in maniera tale che le modifiche non vengano perse con gli aggiornamenti, ma non riesco a capire quale percorso intraprendere. Potresti aiutarmi? Grazie 1000 Barbara

    1. Ciao Barbara, le modifiche ai CSS di WooCommerce le puoi scrivere direttamente nel foglio di stile del tema child, o nei custom CSS se il tema lo prevede. Non c’è bisogno che vai a toccare i fogli di stile del plugin, anche perché molti temi compatibili applicano i loro stili alle pagine dell’e-commerce.
      rob

  10. Ciao,
    bellissimo il tutorial, ora ne so una in più su questo fantastico plugin.
    Volevo solo aggiungere, se possibile, una piccola precisazione:

    Nel riprodurre il percorso del file di template che vogliamo riprodurre nel child theme si deve omettere la cartella templates cioè:

    wp-content/plugins/woocommerce/templates/single-product/tabs/description.php

    diventerà

    wp-content/themes/woocommerce/single-product/tabs/description.php.

    Così il template figlio sarà perfettamente visibile al motore di woocommerce.
    Grazie ancora e ciao

    1. Hai ragione, grazie per la precisazione.
      L’articolo è molto vecchio e contiene alcune inesattezze che sarà il caso di correggere

      Grazie ancora 😉
      rob

  11. Ciao,
    non so se posso approfittare della tua esperienza e della chiarezza delle tue risposte. Sto ridisegnando il nostro nuovo sito (ancora in forma embrionale) e ho introdotto woocommerce.. Diciamo che sto andando un passo alla volta quindi mi trovo ancora ad affrontare problemi di “layout”. Il sito puoi vederlo dal link che ti ho inviato. Praticamente sono fermo da 2 giorni su un problema: accedendo allo shopping, visualizzo le catergorie di prodotti, entro nella categoria e ho una sottocategoria, entro nella sottocategoria e ho i prodotti… fin qui tutto ok! Torno un attimo indietro: ho personalizzato la visualizzazione delle pagine utilizzate da woocommerce modificando il file style.css del tema per eliminare le sidebar e la slider presenti nella parte “blog” del sito. Se entro nella pagina del singolo prodotto, le sidebar non ci sono ed è ok ma mi riappare la slider che è fastidiosissima. Non riesco a capire come mai se lo stile della pagina shop e del carrello sono corrette. Ho anche altre curiosità o piccoli ostacoli ma per ora mi fermo qui. Ti ringrazio in anticipo per i tuoi consigli (anche sul resto)…

    1. Ciao Davide, ti rispondo dall’ombrellone essenza gli strumenti necessari per poter valutare il caso.

      Bisogna capire come il layout del tema ragiona nelle singole pagine prodotto, ma la presenza o meno della sidebar sarebbe meglio deciderà dalle opzioni specifiche del tema, se ci sono, o nel template utilizzato per la pagina prodotti.

      Rob

      1. Grazie lo stesso… e sicuramente l’ombrellone è sempre la scelta giusta…… Alla fine ho cambiato tema perchè quello che avevo scelto non rispondeva a woocommerce anche se avevo inserito le stringhe richieste.
        Comunque l’approccio “grafico” a woocommerce e wordpress mi ha lasciato molto perplesso finora.. Sembra tutto meravigliosamente semplice poi però scopri imperfezioni che ti fanno perdere ore e ore di esami e tentativi. Per esempio ora è tutto ok ma quando vado nel carrello con il riepilogo dei prodotti ordinati, le immagini non hanno grandezza uniforme ma sono della loro grandezza originale (e non miniature uniformi) e addirittura mi escono fuori dal bordo del content del tema.. E’ assurdo. Se hai 2 minuti puoi vedere una cosa nuova arrivando al carrello con 3 o 4 prodotti e vedi che bel risultato del cavolo… Sto impazzendo.

        1. Beh, come tutti i lavori richiede un minimo di perizia e di esperienza, conoscere gli elementi in campo e via discorrendo.
          Posso capire però che per chi non ci ha mai messo le mani possa sembrare un po’ incasinato.

          Se vuoi mandarmi il link un occhio ce lo do volentieri.

          rob

          1. Ma grazie… sei gentilissimo. Cerco di spiegarmi per farti vedere il problema.
            Se vai sul sito http://www.studiointermedia.altervista.org e fai shopping inserendo nel carello (acquisto) i 4 prodotti che vedi nella categoria Cancelleria e poi vai nel carrello, vedrai che il carrello va fuori layout perchè le immagini vengono proposte in formato originare (quindi non miniature). Questo avviene però solo con internet explorer…. su chrome è ok. Siccome è un tema responsive, ho provato a vedere anche dai miei smartphone e ho visto che sul browser android è ok mentre su explorer di windowsphone fa la stessa cosa di ie (evidentemente perchè è lo stesso browser)… su safari non ho provato. Ma diciamo che a me interessa capire perchè in IE non rende “miniature” con la stessa grandezza le immagini del prodotto nel carrello.
            Ti ringrazio ancora della tua occhiata… Accetto ogni tuo suggerimento o critica anche se ti prego di tener conto che il sito è assolutamente in fase embrionale. Grazie. Davide

            1. Ciao Davide, infatti con i browser “normali” è tutto regolare.

              Se il problema è solo l’impaginazione con il “malefico IE”, sempre fonte di guai, penso che si possa risolvere abbastanza facile con una gestione ad-hoc dei CSS

              rob

              1. quindi tu mi consigli di lasciare cosi la cosa o di impelagarmi nella gestione dei CSS? Nel caso parliamo sempre dello Style.css del tema o su woocommerce?
                Grazie

                1. beh, considerando quanto (purtroppo) venga ancora utilizzato IE, io una guardatina ai CSS gliela darei.

                  No, non interverrei sui CSS di default del tema o di woocommerce, ma lavorerei su dei CSS custom, sia che li preveda il tema, o del tema child se lo stai usando (mi auguro). Altrimenti rischi che vengano sovrascritti al primo aggiornamento.

                2. si sto usando un child… ma credo di essere in alto mare per le modifiche a questo punto visto che non so dove andare a cercare.. Grazie comunque!

                3. Ciao…. ho risolto!!! Non era un problema di CSS ma ero io che avevo giocato con le dimensioni delle immagini nelle impostazioni di woocommerce. Praticamente ho modificato le dimensioni standard di prodotti e categorie e non avevo ripristinato le miniature dei media. Ho scaricato il plugin suggerito ed ho rigenerato tutte le miniature ed ora tutto è tornato graficamente a posto!!!

  12. Sai? non sono ancora riuscito a risolvere il problema delle email.. Woocommerce non manda più notifiche sulle vendite, sugli ordini, quando viene inserita una nota o quando viene inviata una fattura.. Che stranezza..

    1. Ciao Mario, sei riuscito a risolvere il problema delle mail?!Ho wordpress appena creato e woocommerce appena configurato…ma nessuna email viene inviata!

  13. Un altro consiglio che vorrei chiedere: La scelta più giusta per il momento mi sembra quella di esportare tutto, ovvero i prodotti, ordini articoli e pagine per poi resettare tutto, sia wordpress che woocommerce installando l’ultima versione di entrambi. Il problema si pone quando si prova ad esportare i prodotti. Infatti furbamente woocommerce propone la “Product CSV Import Suite” a 99$ per esportare/importare tutto correttamente. Non esiste un’altro plugin gratuito che può dare la stessa qualità di import/export?

    1. Ciao Mario,

      si penso anch’io che potrebbe essere una soluzione valida.

      Ho letto in rete tempo fa di qualcuno che forniva le istruzioni per realizzare uno script del genere, non mi interessava al momento e non l’ho memorizzato. Magari se fai una ricerca lo trovi.

      Certo che, se guardi bene, tra il tempo di cercare e soprattutto quello di provare, sempre che tutto fili liscio al primo colpo, 99 Dollari non sono poi questa gran spesa, in Euro poi… 😉

      rob

  14. Certamente! La cosa più strana è che sul sistema di prova, dopo il test di aggiornamento, e dopo diverse prove, woocommerce non manda categoricamente nessuna email. Ad esempio all’acquisto di un prodotto solitamente al cliente gli viene notificata un’email no? Ecco queste email/notifiche non partono più.. Stranissimo..

    1. Ho notato che lo stesso problema si verifica quando si effettua un dump del DB e quando quest’ultimo viene ripristinato… Insomma non mi rimane da pensare che se si installa woocommerce non possono più essere fatti ripristini sul database in caso di malfunzionamento..

      1. No, non credo sia questo, ho già ripristinato dei WP con WooCommerce dai dump del database e non ho riscontrato problemi del genere.

        Io farei un’analisi dei messaggi di errore.

        rob

  15. Ciao Roberto. Volevo chiedere se avevi idea di come aggiornare woocommerce dalla versione 1.6.5.2 all’ultima disponibile: 2.0.10. Ho già un negozio con più di 1900 prodotti funzionante e operativo. Ho provato a fare dei test di aggiornamento su un clone dell’intero negozio su un altro dominio/host ma il risultato è stato una cascata di errori.. Sto attualmente facendo altri tentativi ma non sto avendo successo…

    1. Ciao Mario, la procedura standard è una sola, ossia lanciare l’aggiornamento. Nel tuo caso la cosa migliore credo che sia analizzare gli errori, meglio se attivando il debug su file, in modo da avere una traccia completa di quello che succede.

      Hai provato ad aggiornare disabilitando tutti gli altri plugin?

      rob

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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