forked from jemoreto/GravityForms-Valida-CPF-CNPJ
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgform_valida_cpf_cnpj.php
113 lines (72 loc) · 2.6 KB
/
gform_valida_cpf_cnpj.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
/**
*
* Plugin Name: Gravity Forms Validação CPF CNPJ
* Description: Plugin que habilita a validação de CPF e CNPJ
* Author: JP Tibério [com contribuição de John (João Elton Moreto)]
*
*/
/*
* Adaptado por John (João Elton Moreto) - https://gist.github.com/jemoreto
* Ver o README para detalhes.
* Original em: https://github.com/jptiberio/GravityForms-Valida-CPF-CNPJ
*/
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
require 'class-valida-cpf-cnpj.php';
if ( is_plugin_active('gravityforms/gravityforms.php') ) {
add_filter("gform_validation", "custom_validation");
function custom_validation( $validation_result){
$form = $validation_result['form'];
foreach( $form['fields'] as $field ) {
if ( strpos( $field->cssClass, 'validar_cpf_cnpj' ) !== false ) {
$msg_validacao = 'CPF ou CNPJ inválido';
if ( strpos( $field->cssClass, 'tipo_cpf' ) !== false ) {
$msg_validacao = 'CPF inválido';
}
if ( strpos( $field->cssClass, 'tipo_cnpj' ) !== false ) {
$msg_validacao = 'CNPJ inválido';
}
// Check if the field is hidden by GF conditional logic
$is_hidden = RGFormsModel::is_field_hidden( $form, $field, array() );
// Para formularios multi-páginas, checar se o campo está sendo exibido na página atual
$pagina_atual = rgpost( 'gform_source_page_number_' . $form['id'] ) ? rgpost( 'gform_source_page_number_' . $form['id'] ) : 1;
// Get the field's page number
$field_page = $field->pageNumber;
if ($is_hidden || $field_page != $pagina_atual) {
continue;
}
$field_value = rgpost( 'input_'.$field->id );
if (isset($cpf_cnpj)) {
unset($cpf_cnpj);
}
$cpf_cnpj = new ValidaCPFCNPJ($field_value);
if (!empty($cpf_cnpj)) {
$validado = $cpf_cnpj->valida();
if ( $validado != true ) {
$field->validation_message = $msg_validacao;
$validation_result['is_valid'] = false;
$field->failed_validation = true;
//break;
}
} else {
$field->validation_message = $msg_validacao;
$validation_result['is_valid'] = false;
$field->failed_validation = true;
//break;
}
}
}
$validation_result['form'] = $form;
return $validation_result;
}
} else {
function pls_activate_gforms() {
?>
<div class="error notice">
<p><?php _e( 'Por favor, instale ou ative o Gravity Forms!', 'my_plugin_textdomain' ); ?></p>
</div>
<?php
}
add_action( 'admin_notices', 'pls_activate_gforms' );
}
?>