Hola buenas tardes.
Tengo en un formulario la siguiente instrucción
}
add_filter( 'pre_get_posts', 'filtro_paginas_especificas' );
add_filter('cred_form_validate','func_validate_usuario_denuncia',10,2);
function func_validate_usuario_denuncia($error_fields, $form_data){
//field data are field values and errors
list($fields,$errors)=$error_fields;
if ($form_data['id']==36925){
$args = array(
'meta_query' => array(
array('key' => 'wpcf-usuario-denuncia',
'value' => $_POST['wpcf-usuario-denuncia']
)),
'post_type' => 'denuncia',
'posts_per_page' => -1
);
$posts = get_posts($args);
//check if birthday value is already on the database
if (count($posts) > 0){
//set error message for my_field
$errors['wpcf-usuario-denuncia']=' Usuario ya existente, utilice un nuevo usuario, gracias';
}
}
return array($fields,$errors);
}
add_filter('gettext', 'my_func2', 10, 3);
function my_func2($translated_text, $untranslated_text, $domain){
if($translated_text == 'Add new' && $domain = 'wpv-views'){
$translated_text = 'Añadir nuevo';
}
return $translated_text;
}
pero cuando se deja en blanco el campo aparece el siguiente mensaje
Elija un nombre de usuario: Usuario ya existente, utilice un nuevo usuario, gracias
¿Como puedo arreglarlo?
URL del sitio: Contenido solo visible a usuarios registrados
Hola Pedro.
Ese aviso salta por que son campos requeridos, es normal que el nombre sea requerido en un formulario.
Lo que no entiendo que es lo que quieres modificar, si quieres modificar ese texto o que los campos no sean requeridos.
Lo que podrías probar es a comentar la línea que hace comprobación de esos datos:
//check if birthday value is already on the database //if (count($posts) > 0){ //set error message for my_field // :blush: //$errors=' Usuario ya existente, utilice un nuevo usuario, gracias'; //}
Un saludo
Gracias Pepe por tu ayuda,
no se casi nada de código, por eso no sabia que era obligatorio.
Lo que quiero que haga es que no sea obligatorio, pero si lo rellenan optativamente. y ya existe ese usuario, que no permita el mismo nombre.
Por otro lado, quiero que la contraseña la repitan y si no es igual que pida que la comprueben.
Hola Pedro.
De donde sacaste ese código ? Puedes pasar la URL ?
El bloque que realiza la validación es el que muestras:
add_filter( 'pre_get_posts', 'filtro_paginas_especificas' ); add_filter('cred_form_validate','func_validate_usuario_denuncia',10,2); function func_validate_usuario_denuncia($error_fields, $form_data){ //field data are field values and errors list($fields,$errors)=$error_fields; if ($form_data==36925){ $args = array( 'meta_query' => array( array('key' => 'wpcf-usuario-denuncia', 'value' => $_POST )), 'post_type' => 'denuncia', 'posts_per_page' => -1 ); $posts = get_posts($args); //check if birthday value is already on the database if (count($posts) > 0){ //set error message for my_field $errors=' Usuario ya existente, utilice un nuevo usuario, gracias'; } } return array($fields,$errors); }
Pero no se si eliminarlo puede afectar a las otras opciones del formulario.
Por qué no utilizas alguna extensión como Contact Form para crear el formulario ?
-> https://es.wordpress.org/plugins/contact-form-7/
Tienes un tutorial en este enlace:
-> https://www.youtube.com/watch?v=m1VMh3qeFaQ&list=PLYfS9V5snXkqMAMjp6K66t_2msRLiphvi
Un saludo
Me lo proporcionaron los de el plugin toolset, utilizo este plugin para crear types.
Puedo pedírselo a ellos ya que es su plugin. Hablan en ingles y estoy mas cómodo con vosotros.
En cualquier caso este el el link
https://sg-fra.canaleticoconfidencial.es/sorigue/
y los campos son
Hola
La única condición para que te aparezca ese mensaje según tu código es que tengas contenido en la variable $post, tal vez sería comprobar adicionalmente si ese campo esta lleno con la otra variable $form_data
Mejor consulta directamente a los desarrolladores que conocen mejor los filtros a usar o qué devuelven esas variables.
Saludos.
gracias