File: /var/www/html/wordpress/wp-content/plugins/malcare-security/form_testing/handlers/gravity_form.php
<?php
if (!defined('ABSPATH')) exit;
if (!class_exists('BVGravityFormHandler')) :
class BVGravityFormHandler {
private $form_id;
private $bypass_params = array();
public function __construct($form_id, $bypass_params) {
$this->form_id = $form_id;
$this->bypass_params = $bypass_params;
}
public function bypass() {
if (array_key_exists('should_bypass_captcha', $this->bypass_params)) {
$this->bypassCaptcha();
}
if (array_key_exists('should_bypass_email', $this->bypass_params)) {
$this->bypassEmail();
}
}
public function bypassCaptcha() {
if ($this->form_id === null) {
return;
}
add_filter('gform_pre_validation_' . $this->form_id, function($form) {
foreach ($form['fields'] as &$field) {
if ($field->type === 'captcha') {
$field->visibility = 'hidden';
}
}
return $form;
}, PHP_INT_MAX);
}
public function bypassEmail() {
add_filter('gform_pre_send_email', function ($email_data) {
$email_data['abort_email'] = true;
return $email_data;
}, PHP_INT_MAX);
}
}
endif;