1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
<?php
/** * Class SiteOrigin_Widget_Field_Checkbox */ class SiteOrigin_Widget_Field_Checkboxes extends SiteOrigin_Widget_Field_Base {
protected $options;
protected function render_field( $value, $instance ) { if( empty($value) ) { $value = array(); }
if( !is_array( $value ) ) { $value = array( $value ); }
$i = 0; foreach( $this->options as $id => $label ) { ?> <label for="<?php echo esc_attr( $this->element_id ) ?>-<?php echo esc_attr( $id ) ?>" class="so-checkbox-label"> <input type="checkbox" class="siteorigin-widget-input" name="<?php echo esc_attr( $this->element_name ) ?>[<?php echo esc_attr( $i++ ) ?>]" value="<?php echo esc_attr( $id ) ?>" id="<?php echo esc_attr( $this->element_id ) ?>-<?php echo esc_attr( $id ) ?>" <?php checked( in_array( $id, $value ) ) ?> /> <?php echo( $label ) ?> </label> <?php } }
protected function sanitize_field_input( $value, $instance ) { if( empty( $value ) ) { $value = array(); }
$values = is_array( $value ) ? $value : array( $value ); $keys = array_keys( $this->options ); $sanitized_value = array(); foreach( $values as $value ) { if ( !in_array( $value, $keys ) ) { $sanitized_value[] = isset( $this->default ) ? $this->default : false; } else { $sanitized_value[] = $value; } }
return $sanitized_value; }
}
|