PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.21
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.21
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / controllers / FrmAntiSpamController.php

FrmAntiSpamController.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.21, at classes/controllers/FrmAntiSpamController.php

129 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Anti-spam controller
4 *
5 * @package Formidable
6 * @since 6.21
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 die( 'You are not allowed to call this page directly.' );
11 }
12
13 class FrmAntiSpamController {
14
15 /**
16 * Checks if given entry values is spam.
17 *
18 * @param array $values Entry values.
19 *
20 * @return bool|string Return spam message if is spam or `false` if is not spam.
21 */
22 public static function is_spam( $values ) {
23 $methods = array(
24 'contains_wp_disallowed_words',
25 'is_denylist_spam',
26 'is_stopforumspam_spam',
27 'is_wp_comment_spam',
28 );
29
30 foreach ( $methods as $method ) {
31 if ( ! is_callable( array( __CLASS__, $method ) ) ) {
32 continue;
33 }
34
35 $is_spam = call_user_func( array( __CLASS__, $method ), $values );
36 if ( $is_spam ) {
37 return $is_spam;
38 }
39 }
40
41 return false;
42 }
43
44 /**
45 * Checks spam using stopforumspam API.
46 *
47 * @param array $values Entry values.
48 *
49 * @return bool|string Return spam message if is spam or `false` if is not spam.
50 */
51 private static function is_stopforumspam_spam( $values ) {
52 $spam_check = new FrmSpamCheckStopForumSpam( $values );
53 return $spam_check->is_spam();
54 }
55
56 /**
57 * Checks spam using WordPress spam comments.
58 *
59 * @param array $values Entry values.
60 *
61 * @return bool|string Return spam message if is spam or `false` if is not spam.
62 */
63 private static function is_wp_comment_spam( $values ) {
64 $spam_check = new FrmSpamCheckUseWPComments( $values );
65 return $spam_check->is_spam();
66 }
67
68 /**
69 * Checks spam using WordPress disallowed words.
70 *
71 * @param array $values Entry values.
72 *
73 * @return bool|string Return spam message if is spam or `false` if is not spam.
74 */
75 public static function contains_wp_disallowed_words( $values ) {
76 $spam_check = new FrmSpamCheckWPDisallowedWords( $values );
77 return $spam_check->is_spam();
78 }
79
80 /**
81 * Checks spam using denylist.
82 *
83 * @param array $values Entry values.
84 *
85 * @return bool|string Return spam message if is spam or `false` if is not spam.
86 */
87 public static function is_denylist_spam( $values ) {
88 $spam_check = new FrmSpamCheckDenylist( $values );
89 return $spam_check->is_spam();
90 }
91
92 /**
93 * Gets spam message.
94 *
95 * @return string
96 */
97 public static function get_default_spam_message() {
98 return __( 'Your entry appears to be spam!', 'formidable' );
99 }
100
101 /**
102 * Extracts email addresses from values.
103 *
104 * @param array $values Values to check.
105 * @return string[]
106 */
107 public static function extract_emails_from_values( $values ) {
108 $values = FrmAppHelper::maybe_json_encode( $values );
109 preg_match_all( '/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i', $values, $matches );
110 return $matches[0];
111 }
112
113 /**
114 * Gets allowed IP addresses.
115 *
116 * @return string[]
117 */
118 public static function get_allowed_ips() {
119 /**
120 * Filter the allowed IP addresses.
121 *
122 * @since 6.21
123 *
124 * @params string[] $allowed_ips Allowed IP addresses.
125 */
126 return apply_filters( 'frm_allowed_ips', array( '', '127.0.0.1', '::1' ) );
127 }
128 }
129