Cómo bloquear direcciones IP para que no rellenen su formulario

Introducción

¿Le gustaría bloquear direcciones IP para que no completen su formulario? Puede fácilmente bloquear usuarios para que no completen su formulario con la lista Permitir/Denegar de WPForms, pero ¿sabía que también puede bloquearlos basándose en su dirección IP? En este tutorial, le mostraremos cómo utilizar un pequeño fragmento de PHP para lograr esto.

Para más información sobre cómo crear una lista Permitir/Denegar, consulte este tutorial.

Creación del formulario

Primero, cree su formulario y añada sus campos a este formulario. Si necesitas ayuda para crear tu formulario, consulta esta documentación.

comience creando su formulario y añadiendo sus campos

Añadir el fragmento

Una vez creado y publicado el formulario, ya puede añadir este fragmento a su sitio.

Si no está seguro de cómo o dónde añadir fragmentos a su sitio, consulte este tutorial.

/**
 * Block form submissions based on IP address
 *
 * @link   https://wpforms.com/developers/how-to-block-ip-addresses-from-completing-your-form/
 */
function wpf_ip_block( $fields, $entry, $form_data ) {
      
    // Get the current users IP address
    $ip_address = wpforms_get_ip();

    // List out the IP addresses separated by a comma
    $blocked_ips = array(
        '129.222.6.90',
        '127.0.0.1',
    );
      
    // Check if the current user IP address is a blocked IP
    if ( in_array( $ip_address, $blocked_ips ) ) {
		
        // Block form submission and print error
        wpforms()->process->errors[ $form_data[ 'id' ] ] [ 'footer' ] = esc_html__( 'Your IP address has been blocked. Please contact the site administrator for further assistance.', 'text-domain' );
    }
}
add_action( 'wpforms_process', 'wpf_ip_block', 10, 3 );

Este fragmento buscará primero la dirección IP del usuario y, si coincide con la lista de direcciones IP bloqueadas, el formulario no se enviará y se mostrará un error.

con este fragmento ahora puede bloquear direcciones IP

Y eso es todo lo que necesita para bloquear direcciones IP de cualquiera de sus WPFForms. ¿Le gustaría también bloquear el envío de formularios por nombre? Echa un vistazo a nuestro tutorial sobre Cómo bloquear nombres de completar su formulario.

Acción Referencia: wpforms_process