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
|
<?php // phpcs:ignoreFile
namespace AutomateWoo\Fields;
use AutomateWoo\Clean;
if ( ! defined( 'ABSPATH' ) ) exit;
/** * @class Attribute_Term */ class Attribute_Term extends Field {
protected $name = 'term';
protected $type = 'term';
function __construct() { parent::__construct(); $this->set_title( __( 'Terms', 'automatewoo' ) ); $this->classes[] = 'automatewoo-json-search'; }
/** * @param array $values */ function render( $values ) {
$values = Clean::multi_select_values( $values );
$display_values = [];
foreach ( $values as $value ) { if ( strstr( $value, '|' ) ) { list( $term_id, $taxonomy ) = explode( '|', $value );
if ( $term = get_term_by( 'id', $term_id, $taxonomy ) ) { $display_values[ $value ] = $term->name; } } }
?>
<select class="<?php echo esc_attr( $this->get_classes() ); ?>" multiple="multiple" name="<?php echo esc_attr( $this->get_full_name() ); ?>[]" data-placeholder="<?php esc_attr_e( 'Search for a term…', 'automatewoo' ); ?>" data-action="aw_json_search_attribute_terms" data-pass-sibling="aw_workflow_data[trigger_options][attribute]" > <?php foreach ( $display_values as $key => $value ) { echo '<option value="' . esc_attr( $key ) . '"' . selected( true, true, false ) . '>' . wp_kses_post( $value ) . '</option>'; } ?> </select>
<?php }
/** * Sanitizes the value of the field. * * @since 4.4.0 * * @param array $value * * @return array */ function sanitize_value( $value ) { return Clean::recursive( $value ); }
}
|