Se quiser fazer algum tipo de verificação antes de inserir em uma tabela no Banco de Dados do Formulário de Contato, use ganchos.
função my_form_chk( $cf 7 ) {
Recuperando Valores de Formulários de Entrada
foreach ($cf 7->posted_data como $posted_name => $posted_value) {
O valor original não muda, então é alterado para uma variável diferente
$posted_nome_2 = $posted_nome;
$posted_valor_2 = $posted_valor;
Modelagem dos valores
$posted_nomeLimpo = tirasslash($posted_nome_2);
$posted_valor_2 = is_array($posted_valor_2) ? implode($posted_valor_2, ', ') : $posted_valor_2;
$posted_valorLimpo = faixas($posted_valor_2);
Atribuir a cada variável
if( $posted_nameClean == 'a' ) {
$input_param_a = $posted_valorLimpo;
}
if( $posted_nameClean == 'b' ) {
$input_param_b = $posted_valorLimpo;
}
if( $posted_nameClean == 'c' ) {
$input_param_c = $posted_valorLimpo;
}
}
Processamento de Cheques
if ( $input_param_a !== $input_param_b || $input_param_a !== $input_param_c ) {
$cf 7->skip_mail = verdadeiro;
}
}
add_action('wpcf7_before_send_mail', 'my_form_chk', 1);
No exemplo acima, há três campos de entrada na forma de entrada, a, b e c, e pegamos os valores e atribuímos verdadeiro a $cf 7->skip_mail se não especificarmos a e b ou a e c correspondem.
Isso evita o envio de e-mails para o Formulário de Contato 7. No entanto, o registro no DB não para.
Portanto, modificaremos algumas das bases de dados do Formulário de Fontes de Contato.
/wp-content/plugins/contact-form-7-to-database-extension CF7DBPlugin.php adicionar a seguinte ação próxima à linha 467:
if ($cf 7->skip_mail) {
retornar; Não salvar no banco de dados
}
Simplificando, se $cf 7->skip_mail for atribuído verdadeiro, ele terminará de processar o banco de dados do Formulário de Contato.
Isso para de inserir no banco de dados, mas se você olhar no navegador, uma mensagem será gerada como se tivesse sido registrada.
Portanto, modificaremos alguns dos Formulários 7 de Fontes de Contato.
/wp-content/plugins/contact-form-7/includes classes.php Mude o processamento ao redor da linha 467 para o seguinte:
se ( $this->skip_mail )
retorno verdadeiro;
se ( $this->skip_mail ) {
retorne falso;
}
Isso porque $cf 7->skip_mail é originalmente uma flag que suprime o envio de e-mails, mas quando é verdadeiro, retorna verdadeiro, então parece bem-sucedido quando visualizado no navegador.
Então, se você devolver false quando $cf 7->skip_mail for verdadeiro (quando ele trava no processo de verificação), você terá um erro.
Aliás, se você não quiser enviar um e-mail desde o começo, pode usar
se ( $this->skip_mail )
retorno verdadeiro;
se ( $this->skip_mail ) {
retorne falso;
} else {
retorno verdadeiro;
}
Se você devolver true com else, se não for pego no processo de verificação, uma mensagem de sucesso será exibida após registrar o banco de dados.