select.php
2.87 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
// extract styles & classes
extract( $extra_attr );
if ( empty( $attributes[ 'customField' ] ) ) {
return;
}
?>
<div class="<?php echo esc_attr( $wrapper_class ); ?>" <?php if ( ! empty( $wrapper_style ) ) { ?> style="<?php echo esc_attr( $wrapper_style ); ?>" <?php } ?>>
<?php
$field = get_field_object( $attributes[ 'customField' ], get_the_ID() );
if ( $field ) :
$output = '';
$fieldType = $field[ 'type' ];
if ( ! empty( $attributes[ 'labelName' ] ) ) {
$output .= '<span class="' . esc_attr( 'wp-block-getwid-template-acf-select__label' ) . '">' . esc_html( $attributes[ 'labelName' ] ) . '</span>';
}
switch ( $fieldType ) {
case 'select' :
$fieldIsMultiple = $field[ 'multiple' ];
$fieldReturnFormat = $field[ 'return_format' ];
$fieldValue = $field[ 'value' ];
switch ( $fieldReturnFormat ) {
case 'value' :
case 'label' : {
if ( $fieldIsMultiple ) {
$numCount = 0;
$numOfItems = count( $fieldValue );
foreach ( $fieldValue as $value ) {
$numCount = $numCount + 1;
$getValue = $value;
$output .= '<span class="wp-block-getwid-template-acf-select__value ' . esc_attr( 'option-' . strtolower( $getValue ) ) . '">';
$output .= esc_html( $getValue );
$output .= '</span>';
if ( $numCount < $numOfItems ) {
$output .= esc_html( $attributes[ 'separator' ] );
}
}
} else {
$output .= '<span class="wp-block-getwid-template-acf-select__value ' . esc_attr( 'option-' . strtolower( $fieldValue ) ) . '">';
$output .= esc_html( $fieldValue );
$output .= '</span>';
}
break;
}
case 'array' :
if ( $fieldIsMultiple ) {
$numCount = 0;
$numOfItems = count( $fieldValue );
foreach ( $fieldValue as $value ) {
$numCount = $numCount + 1;
$getBothArray = $value[ 'value' ] . ': ' . $value[ 'label' ];
$getValueArray = $value[ 'value' ];
$output .= '<span class="wp-block-getwid-template-acf-select__value ' . esc_attr( 'option-' . strtolower( $getValueArray ) ) . '">';
$output .= esc_html( $getBothArray );
$output .= '</span>';
if ( $numCount < $numOfItems ) {
$output .= esc_html( $attributes[ 'separator' ] );
}
}
} else {
$output .= '<span class="wp-block-getwid-template-acf-select__value ' . esc_attr( 'option-' . strtolower( $fieldValue[ 'value' ] ) ) . '">';
$output .= esc_html( $fieldValue[ 'value' ] . ': ' . $fieldValue[ 'label' ] );
$output .= '</span>';
}
break;
}
break;
}
echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
endif;
?>
</div>