• User

    embeddare un form dentro single.php

    salve a tutti, sono dentro single.php e ho bisogno di embeddarci un form.

    Come posso gestire l'action del form? cioè dove inserisco il file php per la gestione del form? grazie


  • User Attivo

    Ciao ocrama,

    a quanto dici mi sembra di aver capito che conosci il linguaggio PHP e che vuoi andare ad inserire manualmente un form di contatto all'interno della tua pagina single.php, se mi posso permettere, te lo sconsiglio caldamente.

    Anche se non conosco le tue competenze in PHP vorrei dirti che WordPress ti offre moltissime funzioni per migliorare la sicurezza tuoi moduli e tra l'altro recentemente hanno anche introdotto un semplicissimo metodo per inserire un modulo all'interno delle tue pagine.

    Negli ultimi anni WordPress ha rilasciato un plugin che si chiama Jetpack, chiamarlo plugin mi sembra un pò riduttivo dato le possibilità che vengono offerte, ma una delle caratteristiche che mette a disposizione è proprio un modulo di contatto semplicissimo da utilizzare.

    Tutto quello che ti servirà è avere un account su wordpress.com, gratuito si intende, e sarai in grado di utilizzare delle caratteristiche davvero interessanti!

    Provalo e facci sapere se questo basta a soddisfare le tue necessità.


  • User

    Grazie mille AndMore, per completezza descriverò meglio il mio scenario in modo da fornire indicazioni più precise:

    Ho una serie di post type detentore_prodotto che ho creato con un plugin. si tratta di circa 800 post. Ora io dovrei inserire questo form ma andarlo a fare su tutti e 800 mi sembrava sconveniente e quindi mi sono chiesto se nel single.php io potessi inserire un form in modo quindi da farlo apparire direttamente su quei tipi di post.
    Il form deve solo inviare due email. Sarebbe comoda una soluzione che magari mi consentisse di generare uno shortcode parametrizzabile che potrei andare ad inserire come campo personalizzato nel post type (per i campi personalizzati dei custom post ho utilizzato il plugin "custom field")
    Darò un'occhiata a questo JetPack per verificare se offre una soluzione del genere.

    Ti ringrazio molto per i tuoi consigli.

    p.s. si conosco il php :wink3:


  • User Attivo

    Ciao ocrama,

    in questo contesto devo dire che molto probabilmente il modulo contatti che troverai all'interno di Jetpack non ti sarà di grandissimo aiuto... Non lo utilizzo molto, anzi a dire il vero proprio questa conversazione mi ha spinto a utilizzarlo all'interno di una pagina del mio sito 🙂 Ma a quanto ho capito, questo plugin aggiunge un bottone all'interno dell'editor WP quindi, se vuoi inserirlo in 800 post, ho paura che con questa soluzione dovrai farlo a manina...

    Vabbé tanto se provi Jetpack troverai mooolte altre funzionalità interessanti!

    Tornando al discorso del modulo, prova a dare un'occhiata a Contact Form, se non sbaglio questo plugin offre degli shortcode da inserire direttamente all'interno degli articoli. Ma anche questa soluzione prende un pò di tempo... IMHO, dato che conosci PHP, potresti andarti a creare un nuovo file all'interno del tuo template, chiamiamolo modulo-contatto.php, all'interno di questo file inserisci il form come sei abituato a fare e tutto il codice necessario all'invio delle email (mi raccomando usa wp_nonce e altre cose che ora non ricordo :P). Fatto questo torna su single.php e inserisci quanto segue dopo the_content() o dove vuoi far apparire il tuo modulo:

    get_template_part( 'modulo', 'contatto' );
    

    Questa funzione si comporta come un classico include o require (mai capito bene la differenza) e quindi ti permetterà di inserire tutto il codice dentro modulo-contatto.php all'interno della tua pagina.

    Mi raccomando, ricordati che sei già dento al tag di apertura PHP quindi, se devi inserire del codice HTML per impostare la struttura, ricordati di chiuderlo 🙂

    Fai qualche prova e facci sapere come ti sta andando!

    Ciao e a presto, Andrea Barghigiani.


  • User

    Perfetto Andrea, in realtà stavo seguendo una soluzione simile anche se un pò più sporca: invece di avere un file modulo-contatto.php e includerlo in single.php, ho creato direttamente l'html del form all'interno della pagina e poi l'action lo stavo gestendo all'interno della cartella wp-content/customcode (che ho creato io). Considera che sto complicando il tutto mostrando il form su una finestra modale che apro con fancybox. L'action infatti la richiamo in ajax con jquery (che poi alla fine è la stessa cosa).
    Comunque in ogni caso la tua mi sembra molto più pulita.
    Per la settimana prossima dovrei terminare il lavoro e ti aggiornerò sicuramente.
    Nel frattempo mille grazie!!