/home/awneajlw/www/wp-content/plugins/formidable/classes/controllers/FrmAntiSpamController.php
<?php
/**
* Anti-spam controller
*
* @package Formidable
* @since 6.21
*/
if ( ! defined( 'ABSPATH' ) ) {
die( 'You are not allowed to call this page directly.' );
}
class FrmAntiSpamController {
/**
* Checks if given entry values is spam.
*
* @param array $values Entry values.
*
* @return bool|string Return spam message if is spam or `false` if is not spam.
*/
public static function is_spam( $values ) {
$methods = array(
'contains_wp_disallowed_words',
'is_denylist_spam',
'is_stopforumspam_spam',
'is_wp_comment_spam',
);
foreach ( $methods as $method ) {
if ( ! is_callable( array( self::class, $method ) ) ) {
continue;
}
$is_spam = call_user_func( array( self::class, $method ), $values );
if ( $is_spam ) {
return $is_spam;
}
}
return false;
}
/**
* Checks spam using stopforumspam API.
*
* @param array $values Entry values.
*
* @return bool|string Return spam message if is spam or `false` if is not spam.
*/
private static function is_stopforumspam_spam( $values ) {
$spam_check = new FrmSpamCheckStopForumSpam( $values );
return $spam_check->is_spam();
}
/**
* Checks spam using WordPress spam comments.
*
* @param array $values Entry values.
*
* @return bool|string Return spam message if is spam or `false` if is not spam.
*/
private static function is_wp_comment_spam( $values ) {
$spam_check = new FrmSpamCheckUseWPComments( $values );
return $spam_check->is_spam();
}
/**
* Checks spam using WordPress disallowed words.
*
* @param array $values Entry values.
*
* @return bool|string Return spam message if is spam or `false` if is not spam.
*/
public static function contains_wp_disallowed_words( $values ) {
$spam_check = new FrmSpamCheckWPDisallowedWords( $values );
return $spam_check->is_spam();
}
/**
* Checks spam using denylist.
*
* @param array $values Entry values.
*
* @return bool|string Return spam message if is spam or `false` if is not spam.
*/
public static function is_denylist_spam( $values ) {
$spam_check = new FrmSpamCheckDenylist( $values );
return $spam_check->is_spam();
}
/**
* Gets spam message.
*
* @return string
*/
public static function get_default_spam_message() {
return __( 'Your entry appears to be spam!', 'formidable' );
}
/**
* Extracts email addresses from values.
*
* @param array $values Values to check.
* @return string[]
*/
public static function extract_emails_from_values( $values ) {
$values = FrmAppHelper::maybe_json_encode( $values );
preg_match_all( '/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i', $values, $matches );
return $matches[0];
}
/**
* Gets allowed IP addresses.
*
* @return string[]
*/
public static function get_allowed_ips() {
/**
* Filter the allowed IP addresses.
*
* @since 6.21
*
* @params string[] $allowed_ips Allowed IP addresses.
*/
return apply_filters( 'frm_allowed_ips', array( '', '127.0.0.1', '::1' ) );
}
}