Contact Form 7 es uno de los plugins de WordPress más utilizados, ya que nos permite incluir formularios de contacto de forma sencilla en nuestros blogs. El problema viene cuando queremos añadir validaciones a los campos del formulario. Una forma sencilla, quizás haya un plugin que lo haga, es editar el functions.php y añadir un action al init que compruebe los valores de $_POST y devolver el JSON oportuno:
add_action('init', 'comprueba_form', 1); // prioridad 1 para que actue antes que el plugin
function comprueba_form() {
if ( 'POST' == $_SERVER['REQUEST_METHOD'] &
isset( $_POST['_wpcf7_is_ajax_call'] ) &
$_POST['_wpcf7'] == '1') { // _wpcf7 es el id del formulario para diferenciarlos
// comprobaciones
if ($_POST['campo'] != 'valor') {
echo '{"mailSent":false,"into":"#wpcf7-f2-p813-o1","captcha":null,"message":"El campo 'campo' falla.","onSentOk":null}';
exit();
}
}
}