• Hola a todos. he agotado mis recursos y realmente no me da la cabeza

    Lo que necesito hacer es en un formulario de wordpress, cual sea, tener un campo de ingreso donde se puedan ingresar solo datos que yo ya preestableci, por ejemplo.

    En un form:
    Nombre: Ingrean nombre
    Email: Ingresan Email
    Codigo: Ingresan un codigo que ya existe, ellos lo obtuvieron en alguna promocion,o el numero de su factura de consumo etc. pero si el codigo no es valido no les permite enviar el form. y si es valido, les permite hacer un envio pero si a futuro quieren ingresarlo de nuevo ya no es posible.

    este listado de codigos yo lo ingreso antes al sitio para que pueda cotejar dentro de mi listado y saber que si es un codigo correcto.

    al enviar, aparece en pantalla al cliente un codigo random. para poder darles un descuento.

    Gracias por su ayuda

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Moderador Mariano Perez

    (@mpcdigital)

    Hola,

    en los plugins de formularios como Ninja Forms, Caldera, etc. puedes poner en un campo condiciones como, por ejemplo, que compare el texto introducido con la tabla de códigos que le hayas metido.

    Iniciador del debate wsosa47

    (@wsosa47)

    Gracias Mariano, si he utilizado este plugin, pero no se donde se encuentra la opcion que me comentas. puedes indicarme donde.

    Gracias por la ayuda.

    Estimado @wsosa47, creo que la mejor opción que crees un Post Type llamado «ticket» y que vaya generando el registro de los ya cargados. Para el form puedes utilizar ACF (https://www.advancedcustomfields.com/) y con sus filters personalizadas podrás validar el campo con una función personalizada que desarrolles tu mismo.

    Acá te pongo un ejemplo de la función de validación:

    add_filter('acf/validate_value/name=num_ticket', 'ls18_ticket_validate', 10, 4);
    function ls18_ticket_validate($valid, $value, $field, $input){
    	if(!$valid){
    		return $valid;
    	}
    
    	$args = array(
    		'post_type' => 'ticket',
    		'posts_per_page' => -1,
    		'meta_query' => array(
    			'relation' => 'AND',
    				array(
    					'key' => 'num_ticket',
    					'value' => $value,
    					'compare' => 'LIKE'
    				),
    				array(
    					'key' => 'local',
    					'value' => $_POST['acf']['field_5b8197fea5a15'],
    					'compare' => 'LIKE'
    				)
    			),
    		);
    
    		if(get_posts($args)):
    			$valid = 'Este ticket ya fue cargado.';
    		endif;
    
    		return $valid;
    }

    Espero que te sirva.
    Saludos!

    • Esta respuesta fue modificada hace 5 años, 7 meses por Lunestudio.
    • Esta respuesta fue modificada hace 5 años, 7 meses por Lunestudio.
    • Esta respuesta fue modificada hace 5 años, 7 meses por Lunestudio.
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Ingresos predefinidos’ está cerrado a nuevas respuestas.