wordpress - tutorial - ejemplos formularios contact form 7
¿Cómo cambiar la URL de acción de formulario para el formulario de contacto 7? (2)
Como no está familiarizado con el código PHP, le daré un curso rápido de codificación dentro de la API de Wordpress.
Primero, necesitas saber la diferencia entre funciones y variables. Una variable es una entidad única que debe representar un valor arbitrario. El valor puede ser cualquier cosa. Un número, el nombre de alguien o datos complejos.
Una función es algo que ejecuta una serie de acciones para enviar de vuelta o devolver una variable o alterar una variable determinada.
<?php
$a = 1; //Number
$b = ''b''; //String *note the quotes around it*
$c = my_function(); //Call to a function called my_function
echo $a; //1
echo $b; //b
echo $c; //oh, hello
function my_function()
{
return ''oh, hello'';
}
?>
Wordpress utiliza su propia acción y sistema de filtro basado libremente en el estilo de Programación Dirigida por Eventos .
Lo que esto significa es que Wordpress está "escuchando" que ocurra un determinado evento y, cuando lo hace, ejecuta una función asociada a ese evento (también conocida como devolución de llamada). Estas son las "Acciones" y "Filtros". Entonces, ¿cuál es la diferencia?
Las acciones son funciones que hacen cosas
Los filtros son funciones que devuelven cosas
Entonces, ¿cómo encaja todo esto en tu problema?
El Formulario de contacto 7 tiene su propio filtro que devuelve la URL de dónde se debe enviar la información mediante sus formularios.
Así que veamos los conceptos básicos de un filtro de gancho
add_filter(''hook_name'', ''your_filter'');
- add_filter es la función que le dice a Wordpress que necesita escuchar un evento en particular.
- ''hook_name'' es el evento que Wordpress está escuchando.
- ''your_filter'' es la función - o callback - que se invoca cuando se activa el evento ''hook_name''.
El enlace al hilo anterior indica que el nombre del enlace que necesita utilizar es ''wpcf7_form_action_url''. Eso significa que todo lo que tiene que hacer es realizar una llamada a add_filter, establecer ''hook_name'' en ''wpcf7_form_action_url'' y luego configurar ''your_filter'' con el nombre de la función que va a configurar como devolución de llamada.
Una vez hecho esto, solo necesita definir una función con un nombre que coincida con lo que haya colocado en lugar de ''su_filtro'', y simplemente asegúrese de que devuelve una URL para modificar la acción del formulario.
Ahora viene el problema: esto va a alterar TODOS tus formularios. Pero lo primero es lo primero: vea si puede obtener un código de trabajo que funcione por su cuenta. Simplemente escriba su código en functions.php y díganos cómo resulta.
ACTUALIZAR:
El hecho de que fue capaz de obtenerlo tan rápido es maravilloso, y muestra la cantidad de esfuerzo de investigación que está poniendo en esto.
Pon todo esto en functions.php
add_filter(''wpcf7_form_action_url'', ''wpcf7_custom_form_action_url'');
function wpcf7_custom_form_action_url()
{
return ''wheretopost.asp'';
}
Como se mencionó anteriormente, eso afectará TODOS sus formularios. Si esto solo se supone que afecta un formulario en una página determinada, puede hacer algo como esto:
add_filter(''wpcf7_form_action_url'', ''wpcf7_custom_form_action_url'');
function wpcf7_custom_form_action_url($url)
{
global $post;
$id_to_change = 1;
if($post->ID === $id_to_change)
return ''wheretopost.asp'';
else
return $url;
}
Todo lo que tendría que hacer es cambiar el valor de $ id_to_change por un número que represente el ID de la publicación / página que está intentando afectar. Entonces, si, por ejemplo, tiene una página de información que le gustaría cambiar la URL de acción, puede encontrar el número de ID de su página de información en el panel de administración (solo vaya al editor de página y busque en su URL la ID número) y cambie el 1 a cualquiera que sea el número de ID.
Espero que esto te ayude, y la mejor de las suertes para ti.
Estoy usando Formulario de contacto 7 en un sitio de wordpress con varios formularios. Necesito dirigir un formulario a una URL de acción de formulario diferente a los demás.
Encontré la respuesta a continuación para un hilo anterior, pero no estoy seguro de cómo hacerlo. ¿Puede alguien especificar qué código exacto debe incluirse en "configuraciones adicionales" y cómo se vería el código en functions.php?
¡Gracias por tu ayuda!
respuesta de diff hilo, que no entiendo completamente ...
* Sí, debe cambiar el atributo "acción" en el formulario utilizando este Gancho de filtro wpcf7_form_action_url. (¿Cuál sería el código?) . Podría agregar el gancho a las funciones de su tema.php y luego simplemente procesar los datos del formulario en su página ASP. (¿código?) *
Puede agregar acciones después de una presentación exitosa, como dice la documentación
Agregar un filtro funcionará en el sentido de que cambiará la acción en el formulario, pero desafortunadamente también romperá la funcionalidad del complemento. Si agrega el filtro como otras respuestas sugieren que el formulario mantendrá el estado del rotador después del envío.
Puede hacer que el formulario haga otra cosa al enviar utilizando una configuración avanzada, como:
on_submit: "alert(''submit'');"
más detalles sobre la configuración avanzada aquí .