85 lines
2.3 KiB
PHP
85 lines
2.3 KiB
PHP
|
|
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Class NF_Abstracts_FieldOptIn
|
||
|
|
*
|
||
|
|
* Opt-In fields should extend this class.
|
||
|
|
*
|
||
|
|
* Supports:
|
||
|
|
* - Checkbox value processing
|
||
|
|
*
|
||
|
|
* Planned Support:
|
||
|
|
* - Single / Multiple Type Opt-In
|
||
|
|
*/
|
||
|
|
abstract class NF_Abstracts_FieldOptIn extends NF_Abstracts_Input
|
||
|
|
{
|
||
|
|
protected $_name = 'optin';
|
||
|
|
|
||
|
|
protected $_section = 'misc';
|
||
|
|
|
||
|
|
protected $_parent_type = 'checkbox';
|
||
|
|
|
||
|
|
protected $_templates = 'optin';
|
||
|
|
|
||
|
|
protected $_settings = array( 'type', 'fieldset', 'checkbox_default_value' );
|
||
|
|
|
||
|
|
protected $_settings_exclude = array( 'default', 'required', 'placeholder', 'input_limit_set', 'disable_input' );
|
||
|
|
|
||
|
|
protected $_lists = array();
|
||
|
|
|
||
|
|
public function __construct()
|
||
|
|
{
|
||
|
|
parent::__construct();
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Setup 'type' options for the opt-in field.
|
||
|
|
*/
|
||
|
|
$this->_settings[ 'type' ][ 'options' ] = array(
|
||
|
|
array(
|
||
|
|
'label' => esc_html__( 'Single', 'ninja-forms' ),
|
||
|
|
'value' => 'single',
|
||
|
|
),
|
||
|
|
array(
|
||
|
|
'label' => esc_html__( 'Multiple', 'ninja-forms' ),
|
||
|
|
'value' => 'multiple',
|
||
|
|
),
|
||
|
|
);
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Add a refresh extra for the groups fieldset.
|
||
|
|
*/
|
||
|
|
$this->_settings[ 'fieldset' ][ 'label' ] = esc_html__( 'Lists', 'ninja-forms' ) . ' <a href="#"><small>' . esc_html__( 'refresh', 'ninja-forms' ) . '</small></a>';
|
||
|
|
$this->_settings[ 'fieldset' ][ 'deps' ] = array( 'type' => 'multiple' );
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Hide the 'type' and 'fieldset' ('groups') settings until they are ready for use.
|
||
|
|
*/
|
||
|
|
$this->_settings[ 'type' ][ 'group' ] = '';
|
||
|
|
$this->_settings[ 'fieldset' ][ 'group' ] = '';
|
||
|
|
}
|
||
|
|
|
||
|
|
protected function addList( $name, $label )
|
||
|
|
{
|
||
|
|
$this->_settings[ 'fieldset' ][ 'settings' ][] = array(
|
||
|
|
'name' => $name,
|
||
|
|
'type' => 'toggle',
|
||
|
|
'label' => $label,
|
||
|
|
'width' => 'full',
|
||
|
|
'value' => ''
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
protected function addLists( array $lists = array() )
|
||
|
|
{
|
||
|
|
if( empty( $lists ) ) return;
|
||
|
|
|
||
|
|
foreach( $lists as $name => $label ){
|
||
|
|
$this->addList( $name, $label );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public function get_parent_type(){
|
||
|
|
return $this->_parent_type;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|