| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins/ninja-forms/includes/Fields/ |
Upload File : |
<?php if ( ! defined( 'ABSPATH' ) ) exit;
/**
* Class NF_Fields_CheckboxList
*/
class NF_Fields_ListCheckbox extends NF_Abstracts_List
{
protected $_name = 'listcheckbox';
protected $_type = 'listcheckbox';
protected $_nicename = 'Checkbox List';
protected $_section = 'common';
protected $_icon = 'list';
protected $_templates = 'listcheckbox';
protected $_old_classname = 'list-checkbox';
public function __construct()
{
parent::__construct();
$this->_nicename = __( 'Checkbox List', 'ninja-forms' );
add_filter( 'ninja_forms_merge_tag_calc_value_' . $this->_type, array( $this, 'get_calc_value' ), 10, 2 );
}
public function admin_form_element( $id, $value )
{
$form_id = get_post_meta( absint( $_GET[ 'post' ] ), '_form_id', true );
$field = Ninja_Forms()->form( $form_id )->get_field( $id );
$settings = $field->get_settings();
$options = $field->get_setting( 'options' );
$options = apply_filters( 'ninja_forms_render_options', $options, $settings );
$options = apply_filters( 'ninja_forms_render_options_' . $this->_type, $options, $settings );
$list = '';
foreach( $options as $option ){
$checked = '';
if( is_array( $value ) && in_array( $option[ 'value' ], $value ) ) $checked = "checked";
$list .= "<li><label><input type='checkbox' value='{$option[ 'value' ]}' name='fields[$id][]' $checked> {$option[ 'label' ]}</label></li>";
}
return "<input type='hidden' name='fields[$id]' value='0' ><ul>$list</ul>";
}
public function get_calc_value( $value, $field )
{
$selected = explode( ',', $value );
$value = 0;
if( isset( $field[ 'options' ] ) ) {
foreach ($field['options'] as $option ) {
if( ! isset( $option[ 'value' ] ) || ! in_array( $option[ 'value' ], $selected ) || ! isset( $option[ 'calc' ] ) || ! is_numeric( $option[ 'calc' ] )) continue;
$value += $option[ 'calc' ];
}
}
return $value;
}
}