Código PHP:
<form id="contact-form" name="contact-form" action="<?php echo get_permalink();?>#contact-form" method="post">
<?php //Comprobamos si el formulario ha sido enviado
if (isset( $_POST['btn-submit'] )) {
//Creamos una variable para almacenar los errores
global $reg_errors;
$reg_errors = new WP_Error;
//Recogemos en variables los datos enviados en el formulario y los sanitizamos.
//Si detectamos algún error, podremos más abajo rellenar los campos del formulario con los datos enviados para no tener que empezar el formulario de cero
$f_name = sanitize_text_field($_POST['f_name']);
//El campo Nombre es obligatorio, comprobamos que no esté vacío y en caso contrario creamos un registro de error
if ( empty( $f_name ) ) {
$reg_errors->add("empty-name", "El campo nombre es obligatorio");
}
//Comprobamos el recaptcha
$response = wp_remote_post( "https://www.google.com/recaptcha/api/siteverify", array(
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array(),
'body' => array(
'secret' => "tu-clave-secreta",
'response' => esc_attr($_POST['g-recaptcha-response'])),
'cookies' => array()
)
);
//Comprobamos si tenemos algún tipo de error en la conexión con google
if ( is_wp_error( $response ) ) {
$reg_errors->add( "invalid-captcha", "Se ha producido un error comprobando el captcha" );
} else {
//Si hemos conectado correctamente con google, comprobamos si la respuesta es true o false
$g_response = json_decode($response["body"]);
if ($g_response->success == false) {
$reg_errors->add( "invalid-captcha", "Se ha producido un error comprobando el captcha" );
}
}
}?>
<div class="form-group">
<label for="f_name">Nombre <span class="asterisk">*</span></label>
<input type="text" id="f_name" name="f_name" class="form-control" value="<?php echo $f_name;?>" placeholder="Introduce tu nombre" required aria-required="true">
<?php //Comprobamos si hay errores en la validación del campo Nombre
if ( is_wp_error( $reg_errors ) ) {
if ($reg_errors->get_error_message("empty-name")) {?>
<br class="clearfix" />
<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<p><?php echo $reg_errors->get_error_message("empty-name");?></p>
</div>
<?php }
}?>
</div>
<div class="form-group">
<div class="g-recaptcha" data-sitekey="tu-clave-del-stio"></div>
</div>
<button type="submit" id="btn-submit" name="btn-submit" class="btn btn-default">Enviar consulta</button>
</form>
De esta forma se puede validar, según he leído, pero no se como adaptarlo a mi código, me ayuda alguien?