35 lines
2.1 KiB
PHP
35 lines
2.1 KiB
PHP
<?php
|
|
if (!defined('ABSPATH')) exit;
|
|
class WMF_Field_GDPR extends WMF_Field_Base {
|
|
public $type='gdpr'; public $label='DSGVO-Zustimmung'; public $icon='dashicons-shield'; public $category='auswahl';
|
|
public function defaults() {
|
|
return array_merge(parent::defaults(),array(
|
|
'required' => '1',
|
|
'gdpr_text' => 'Ich stimme der <a href="/datenschutz" target="_blank">Datenschutzerklärung</a> zu.',
|
|
'error_message' => 'Bitte stimmen Sie der Datenschutzerklärung zu.',
|
|
));
|
|
}
|
|
public function render($field,$value='') { ?>
|
|
<div class="<?php echo esc_attr($this->wrapper_classes($field)); ?> wmf-gdpr-wrap"<?php echo $this->conditional_attrs($field); ?> data-field-id="<?php echo esc_attr($field['id']); ?>">
|
|
<label class="wmf-gdpr-label">
|
|
<input type="checkbox" name="wmf_fields[<?php echo esc_attr($field['id']); ?>]" value="1" <?php checked($value,'1'); ?> <?php echo(!empty($field['required'])&&$field['required']==='1')?'required':''; ?> class="wmf-gdpr-checkbox">
|
|
<span class="wmf-gdpr-text"><?php echo wp_kses_post($field['gdpr_text']??''); ?></span>
|
|
</label>
|
|
<span class="wmf-field-error-msg"></span>
|
|
</div><?php
|
|
}
|
|
public function validate($value,$field) {
|
|
if(!empty($field['required'])&&$field['required']==='1'&&$value!=='1') {
|
|
return $field['error_message']??'Bitte stimmen Sie der Datenschutzerklärung zu.';
|
|
}
|
|
return true;
|
|
}
|
|
public function sanitize($v,$f) { return $v==='1'?'1':'0'; }
|
|
public function settings_panel($field) {
|
|
parent::settings_panel($field); ?>
|
|
<div class="wmf-field-setting"><label>DSGVO-Text (HTML erlaubt)</label><textarea data-setting="gdpr_text" class="widefat" rows="3"><?php echo esc_textarea($field['gdpr_text']??''); ?></textarea></div>
|
|
<div class="wmf-field-setting"><label>Fehlermeldung</label><input type="text" data-setting="error_message" value="<?php echo esc_attr($field['error_message']??''); ?>" class="widefat"></div>
|
|
<?php
|
|
}
|
|
}
|