Come aggiungere l'ID del post (o altri dati del post) a una mail di Contact Form 7?

28 apr 2015, 12:58:17
Visualizzazioni: 21.3K
Voti: 1

Ho scaricato Contact Form 7 per aggiungere moduli di contatto inserendo un semplice snippet dopo ogni post, e l'ho aggiunto in functions.php in questo modo:

//se il tipo di post aggiungo un form

function is_post_type($type)
{
    global $wp_query;
    if($type == get_post_type($wp_query->post->ID)) return true;
    return false;
}

function add_post_content($content){
    if(!is_feed() && !is_home()&& is_single() && is_post_type('post'))
    {
        $content .= '[contact-form-7 id="2202" title="Modulo di contatto 1"]';
    }
    return $content;
}
add_filter('the_content', 'add_post_content');

Quello che vorrei fare ora è aggiungere un nuovo campo nel plugin per inviare il link dell'articolo da cui l'utente sta inviando il modulo, o anche concatenare questo link o ID dopo il contenuto dell'email, o qualcosa di simile, ma sono bloccato in WordPress e non so quale file devo modificare e come importare le variabili $post.

0
Tutte le risposte alla domanda 2
0

È abbastanza semplice già pronto all'uso:

Basta utilizzare il tag speciale per le email [_url].

Finché sei su un articolo o una pagina puoi anche aggiungere altre informazioni come il titolo con [_post_title].

Dai un'occhiata alla documentazione per ulteriori opzioni.

28 apr 2015 13:26:03
0

Puoi provare ad aggiungere un parametro get all'URL nel link al tuo modulo di contatto.

Se è in stile lightbox, puoi anche definire un campo nascosto e riempirlo quando wpcf7 si carica utilizzando global $post.

Usa questo codice per la soluzione con parametro URL e sostituisci id_post con global $post->ID per la soluzione lightbox:

//Aggiungi l'ID del post
function add_post_id_origin ( $tag, $unused ) {
    //Per prima cosa verifichiamo se è il nostro campo nascosto
    if ( $tag['name'] != 'myhiddentag' )  
    return $tag; 

//Questa è per la versione con parametro URL
if(isset($_GET['id_post']) && is_numeric($_GET['id_post']))
{
    $post = get_post($_GET['id_post']);
    $tag['values'] = array($post->ID); 
    $tag['options'] = array('readonly');
}
//questo modo per un utilizzo regolare con global $post
global $post;
$tag['values'] = array($post->ID); 
$tag['options'] = array('readonly');

return $tag;  
}  

//Non dimenticare di agganciare la funzione
add_filter( 'wpcf7_form_tag', 'add_post_id_origin', 10, 2);
28 apr 2015 13:18:05