name = __( 'Checkbox', 'weforms' );
$this->input_type = 'checkbox_field';
$this->icon = 'check-square-o';
}
/**
* Render the text field
*
* @param array $field_settings
* @param integer $form_id
*
* @return void
*/
public function render( $field_settings, $form_id ) {
$selected = !empty( $field_settings['selected'] ) ? $field_settings['selected'] : array();
?>
print_list_attributes( $field_settings ); ?>>
print_label( $field_settings, $form_id ); ?>
0 ) {
foreach ($field_settings['options'] as $value => $option) {
?>
help_text( $field_settings ); ?>
get_default_option_settings( true, array( 'width' ) );
$dropdown_options = array(
$this->get_default_option_dropdown_settings( true ),
array(
'name' => 'inline',
'title' => __( 'Show in inline list', 'weforms' ),
'type' => 'radio',
'options' => array(
'yes' => __( 'Yes', 'weforms' ),
'no' => __( 'No', 'weforms' ),
),
'default' => 'no',
'inline' => true,
'section' => 'advanced',
'priority' => 23,
'help_text' => __( 'Show this option in an inline list', 'weforms' ),
),
);
return array_merge( $default_options, $dropdown_options );
}
/**
* Get the field props
*
* @return array
*/
public function get_field_props() {
$defaults = $this->default_attributes();
$props = array(
'selected' => array(),
'inline' => 'no',
'options' => array( 'Option' => __( 'Option', 'weforms' ) ),
);
return array_merge( $defaults, $props );
}
/**
* Prepare entry
*
* @param $field
*
* @return mixed
*/
public function prepare_entry( $field ) {
$entry_value = ( is_array( $_POST[$field['name']] ) && $_POST[$field['name']] ) ? $_POST[$field['name']] : array();
if ( $entry_value ) {
$new_val = array();
foreach ($entry_value as $option_key) {
$new_val[] = isset( $field['options'][$option_key] ) ? $field['options'][$option_key] : '';
}
$entry_value = implode( WeForms::$field_separator, $new_val );
} else {
$entry_value = '';
}
return $entry_value;
}
}