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)
  • gbrlsepulveda

    (@gbrlsepulveda)

    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 –>
    }

    Criador do tópico krolfernan

    (@krolfernan)

    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.

    gbrlsepulveda

    (@gbrlsepulveda)

    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.

    Criador do tópico krolfernan

    (@krolfernan)

    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.