Come aggiungere l'ID del post (o altri dati del post) a una mail di Contact Form 7?
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.
È 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.

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);
