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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
<?php
namespace AutomateWoo\Fields;
defined( 'ABSPATH' ) || exit;
/** * Searchable product field class. * * @package AutomateWoo\Fields */ class Product extends Searchable_Select_Abstract {
/** * The default name for this field. * * @var string */ protected $name = 'product';
/** * Allow product variations to be possible selections. * * @var bool */ public $allow_variations = false;
/** * Flag to define whether variable products should be included in search results for the select box. * * @var bool */ public $allow_variable = true;
/** * Product constructor. */ public function __construct() { parent::__construct(); $this->set_title( __( 'Product', 'automatewoo' ) ); }
/** * Get the ajax action to use for the search. * * @return string */ protected function get_search_ajax_action() { if ( $this->allow_variable && $this->allow_variations ) { return 'woocommerce_json_search_products_and_variations'; } elseif ( false === $this->allow_variable && true === $this->allow_variations ) { return 'aw_json_search_products_and_variations_not_variable'; } elseif ( false === $this->allow_variable && false === $this->allow_variations ) { return 'aw_json_search_products_not_variations_not_variable'; } else { // allows variable but not variations return 'woocommerce_json_search_products'; } }
/** * Get the displayed value of a selected option. * * @param string $value * * @return string */ protected function get_select_option_display_value( $value ) { $product = wc_get_product( $value );
if ( $product ) { return $product->get_formatted_name(); }
return __( '(Product not found)', 'automatewoo' ); }
/** * Set allow_variations property. * * @since 4.6.0 * * @param bool $allow * * @return $this */ public function set_allow_variations( $allow ) { $this->allow_variations = $allow; return $this; }
/** * Set allow_variable property. * * @since 4.6.0 * * @param bool $allow * * @return $this */ public function set_allow_variable( $allow ) { $this->allow_variable = $allow; return $this; } }
|