Files
WP-Multi-Formular/inc/fields/class-field-checkbox.php
2026-04-13 18:52:46 +02:00

24 lines
1.5 KiB
PHP

<?php
if (!defined('ABSPATH')) exit;
class WMF_Field_Checkbox extends WMF_Field_Base {
public $type='checkbox'; public $label='Kontrollkästchen'; public $icon='dashicons-yes-alt'; public $category='auswahl';
public function defaults() { return array_merge(parent::defaults(),array('options'=>array(array('label'=>'Option 1','value'=>'option_1')),'layout'=>'vertical')); }
public function render($field,$value='') {
$checked=is_array($value)?$value:($value?array($value):array()); ?>
<div class="<?php echo esc_attr($this->wrapper_classes($field)); ?>"<?php echo $this->conditional_attrs($field); ?> data-field-id="<?php echo esc_attr($field['id']); ?>">
<?php $this->render_label($field); ?>
<div class="wmf-checkbox-group wmf-layout-<?php echo esc_attr($field['layout']??'vertical'); ?>">
<?php foreach($field['options']??array() as $opt): ?>
<label class="wmf-checkbox-label">
<input type="checkbox" name="wmf_fields[<?php echo esc_attr($field['id']); ?>][]" value="<?php echo esc_attr($opt['value']); ?>" <?php echo in_array($opt['value'],$checked)?'checked':''; ?>>
<span><?php echo esc_html($opt['label']); ?></span>
</label>
<?php endforeach; ?>
</div>
<?php $this->render_description($field); ?>
<span class="wmf-field-error-msg"></span>
</div><?php
}
public function sanitize($v,$f) { return is_array($v)?array_map('sanitize_text_field',$v):array(); }
}