75 lines
1.8 KiB
PHP
75 lines
1.8 KiB
PHP
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
|
|
|
/**
|
|
* Class NF_Fields_Spam
|
|
*/
|
|
class NF_Fields_Spam extends NF_Abstracts_Input
|
|
{
|
|
protected $_name = 'spam';
|
|
|
|
protected $_type = 'spam';
|
|
|
|
protected $_section = 'misc';
|
|
|
|
protected $_icon = 'ban';
|
|
|
|
protected $_templates = 'textbox';
|
|
|
|
protected $_settings = array( 'spam_answer' );
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
$this->_nicename = esc_html__( 'Anti-Spam', 'ninja-forms' );
|
|
|
|
// Rename Label setting to Question
|
|
$this->_settings[ 'label' ][ 'label' ] = esc_html__( 'Question', 'ninja-forms' );
|
|
$this->_settings[ 'label_pos' ][ 'label' ] = esc_html__( 'Question Position', 'ninja-forms' );
|
|
|
|
// Manually set Field Key and stop tracking.
|
|
$this->_settings[ 'key' ][ 'value' ] = 'spam';
|
|
$this->_settings[ 'manual_key' ][ 'value' ] = TRUE;
|
|
|
|
|
|
// Default Required setting to TRUE and hide setting.
|
|
$this->_settings[ 'required' ][ 'value' ] = 1;
|
|
$this->_settings[ 'required' ][ 'group' ] = '';
|
|
|
|
add_filter( 'nf_sub_hidden_field_types', array( $this, 'hide_field_type' ) );
|
|
}
|
|
|
|
/**
|
|
* Validate
|
|
*
|
|
* @param $field
|
|
* @param $data
|
|
* @return array $errors
|
|
*/
|
|
public function validate( $field, $data )
|
|
{
|
|
$errors = parent::validate( $field, $data );
|
|
|
|
if(
|
|
( isset( $field[ 'spam_answer' ] ) && isset( $field[ 'value' ] ) )
|
|
&& ( $field[ 'spam_answer' ] != $field[ 'value' ] )
|
|
){
|
|
$errors = esc_html__( 'Incorrect Answer', 'ninja-forms' );
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
public function get_parent_type()
|
|
{
|
|
return 'spam';
|
|
}
|
|
|
|
function hide_field_type( $field_types )
|
|
{
|
|
$field_types[] = $this->_name;
|
|
|
|
return $field_types;
|
|
}
|
|
|
|
}
|