Cómo añadir el ID de la entrada (u otros datos de la entrada) a un correo de Contact Form 7

28 abr 2015, 12:58:17
Vistas: 21.3K
Votos: 1

He descargado Contact Form 7 para añadir formularios de contacto insertando un fragmento simple después de cada entrada, y lo he añadido en functions.php así:

//si es tipo de entrada añado un formulario

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="Formulario de contacto 1"]';
    }
    return $content;
}
add_filter('the_content', 'add_post_content');

Lo que me gustaría hacer ahora es añadir un nuevo campo en el plugin para enviar el enlace de la entrada donde el usuario está enviando el formulario, o incluso concatenar este enlace o Id después del contenido del correo electrónico, o algo así, pero estoy atascado en WordPress y no sé qué archivo necesito editar y cómo importar las variables $post.

0
Todas las respuestas a la pregunta 2
0

Esto es bastante fácil de hacer con las opciones predeterminadas:

Solo usa la etiqueta especial de correo [_url].

Mientras estés en una entrada o página, incluso puedes añadir más elementos como el título con [_post_title].

Echa un vistazo a la documentación para ver más opciones disponibles.

28 abr 2015 13:26:03
0

Puedes intentar añadir un parámetro GET a tu URL en el enlace de tu formulario de contacto.

Si es un estilo de lightbox, también puedes definir un campo oculto y rellenarlo cuando wpcf7 se cargue usando global $post.

Usa este código para la solución con parámetro en la URL y reemplaza id_post por global $post->ID para la solución con lightbox:

//Añadir el ID del post
function add_post_id_origin ( $tag, $unused ) {
    //Primero verificamos si es nuestro campo oculto
    if ( $tag['name'] != 'myhiddentag' )  
    return $tag; 

//Esto es para la versión con parámetro en la 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');
}
//Esta forma es para el uso regular con global $post
global $post;
$tag['values'] = array($post->ID); 
$tag['options'] = array('readonly');

return $tag;  
}  

//No olvides enganchar la función
add_filter( 'wpcf7_form_tag', 'add_post_id_origin', 10, 2);
28 abr 2015 13:18:05