101 lines
3.0 KiB
PHP
101 lines
3.0 KiB
PHP
<?php
|
|
|
|
if (! defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Class MC4WP_Ninja_Forms_Field
|
|
*/
|
|
class MC4WP_Ninja_Forms_Field extends NF_Abstracts_Input
|
|
{
|
|
protected $_name = 'mc4wp_optin';
|
|
|
|
protected $_nicename = 'Mailchimp';
|
|
|
|
protected $_section = 'misc';
|
|
|
|
protected $_type = 'checkbox';
|
|
|
|
protected $_icon = 'check-square-o';
|
|
|
|
protected $_templates = 'checkbox';
|
|
|
|
protected $_test_value = 0;
|
|
|
|
protected $_settings = array( 'checkbox_default_value', 'checked_calc_value', 'unchecked_calc_value' );
|
|
|
|
protected $_settings_exclude = array( 'default', 'placeholder', 'input_limit_set', 'checkbox_values' );
|
|
|
|
/**
|
|
* NF_Fields_Checkbox constructor.
|
|
* @since 3.0
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
$this->_nicename = __('Mailchimp opt-in', 'mailchimp-for-wp');
|
|
|
|
$this->_settings['label_pos']['value'] = 'right';
|
|
|
|
add_filter('ninja_forms_custom_columns', array( $this, 'custom_columns' ), 10, 2);
|
|
}
|
|
|
|
/**
|
|
* Admin Form Element
|
|
* Display the checkbox on the edit submissions area.
|
|
* @since 3.0
|
|
*
|
|
* @param $id Field ID.
|
|
* @param $value Field value.
|
|
* @return string HTML used for display of checkbox.
|
|
*/
|
|
public function admin_form_element($id, $value)
|
|
{
|
|
// If the checkboxes value is one...
|
|
if (1 === (int) $value) {
|
|
// ...this variable to checked.
|
|
$checked = 'checked';
|
|
} else {
|
|
// ...else leave the variable empty.
|
|
$checked = '';
|
|
}
|
|
|
|
// Return HTML to be output to the submission edit page.
|
|
return "<input type='hidden' name='fields[$id]' value='0' ><input type='checkbox' name='fields[$id]' value='1' id='' $checked>";
|
|
}
|
|
|
|
/**
|
|
* Custom Columns
|
|
* Creates what is displayed in the columns on the submissions page.
|
|
* @since 3.0
|
|
*
|
|
* @param string $value checkbox value
|
|
* @param MC4WP_Ninja_Forms_Field $field field model.
|
|
* @return $value string|void
|
|
*/
|
|
public function custom_columns($value, $field)
|
|
{
|
|
// If the field type is equal to checkbox...
|
|
if ('mc4wp_optin' === $field->get_setting('type')) {
|
|
// Backwards compatibility check for the new checked value setting.
|
|
if (null === $field->get_setting('checked_value') && 1 === (int) $value) {
|
|
return __('Checked', 'ninja-forms');
|
|
} elseif (null === $field->get_setting('unchecked_value') && 0 === (int) $value) {
|
|
return __('Unchecked', 'ninja-forms');
|
|
}
|
|
|
|
// If the field value is set to 1....
|
|
if (1 === (int) $value) {
|
|
// Set the value to the checked value setting.
|
|
$value = $field->get_setting('checked_value');
|
|
} else {
|
|
// Else set the value to the unchecked value setting.
|
|
$value = $field->get_setting('unchecked_value');
|
|
}
|
|
}
|
|
return $value;
|
|
}
|
|
}
|