Suporte » Desenvolvendo com WordPress » Bloquear envio de formulário

  • Resolvido krolfernan

    (@krolfernan)


    Como processo para criar um formulário, que após certo número de envios é bloqueado o envio, e exibe uma mensagem para o usuário.

    Por exemplo:
    Ofereço um curso para 40 alunos, e após receber esse número de inscrições o formulário de meu site passa a bloquear automaticamente as inscrições e exibe a seguinte mensagem.
    Inscrições encerradas.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Você tem que registrar o numero de envios de alguma forma, pode ser BD, arquivo texto, qualquer coisa, e preferencialmente quando o usuário acessar o formulário, você deve consultar a quantidade de envios anteriores, meio isso.

    if ($envios < 40) {
    <!– exiba form –>
    } else {
    <!– mensagem informativa –>
    }

    E como eu escrevo esse código em php?

    Estou querendo colar ele dentro de meu formulário PHP do WordPress. Mais especificamente dentro do Contact Form 7.

    Você pode fazer com que execute uma função PHP na hora do envio,
    algo parecido com isso

    //Action performed when the mail is actually sent by CF7
    function cf7dtx_increment_mail_counter(){
        //do something
    }
    add_action('wpcf7_mail_sent', 'cf7dtx_increment_mail_counter');

    Nesse link tem a lógica necessária para fazer um contador, segue o link
    http://sevenspark.com/tutorials/how-to-create-a-counter-for-contact-form-7

    É só configurar para armazenar o valor na hora do envio, e quando exibir o form, você precisa ler o valor desse arquivo, comparar e exibir o form ou a mensagem.

    Infelizmente, sou designer… E tenho uma noção superficial de programação.
    Colei o código:
    ————————————
    //Define the key to store in the database
    define( ‘CF7_COUNTER’, ‘cf7-counter’ );

    //Create the shortcode which will set the value for the DTX field
    function cf7dtx_counter(){
    $val = get_option( CF7_COUNTER, 0) + 1; //Increment the current count
    return $val;
    }
    add_shortcode(‘CF7_counter’, ‘cf7dtx_counter’);

    //Action performed when the mail is actually sent by CF7
    function cf7dtx_increment_mail_counter(){
    $val = get_option( CF7_COUNTER, 0) + 1; //Increment the current count
    update_option(CF7_COUNTER, $val); //Update the settings with the new count
    }
    add_action(‘wpcf7_mail_sent’, ‘cf7dtx_increment_mail_counter’);
    ————————————
    Dentro do pluguim:
    contact-form-7/includes/functions.php
    E nada aconteceu…..

    E os Shortcodes.. também não funcionaram, veja como o formulário é impresso em meu site:

    http://krolfernandes.ppg.br/teste/

    Obrigada pela ajuda!

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Bloquear envio de formulário’ está fechado para novas respostas.