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
<?php
namespace SIW\Forms;
use SIW\External\Spam_Check as External_Spam_Check;
class Processor_Spam_Check {
public function __construct() {
add_filter( 'caldera_forms_get_form_processors', [ $this, 'add_form_processor'] );
}
public function add_form_processor( array $processors ) {
$processors['siw_spam_check'] = [
'name' => __( 'Spam Check', 'siw' ),
'description' => __( 'Spam check bij StopForumSpam.com', 'siw' ),
'pre_processor' => [ $this, 'preprocess'],
'single' => true,
'magic_tags' => [
'spam'
]
];
return $processors;
}
public function preprocess( array $config, array $form, string $process_id ) {
if ( $this->is_spam( $config, $form ) ) {
return [
'note' => __( 'Er is helaas iets misgegaan.', 'siw' ),
'type' => 'error'
];
}
return;
}
protected function is_spam( array $config, array $form ) {
$data = \Caldera_Forms::get_submission_data( $form );
$spam_check = new External_Spam_Check();
$spam_check->set_email( $data[ $config['email'] ] );
$spam_check->set_ip( $_SERVER['REMOTE_ADDR'] );
return $spam_check->is_spammer();
}
}