PluginProbe ʕ •ᴥ•ʔ
Premium Addons for Elementor – Powerful Elementor Templates & Widgets / 4.8.9
Premium Addons for Elementor – Powerful Elementor Templates & Widgets v4.8.9
4.11.84 4.11.83 4.11.82 4.11.80 4.11.81 4.11.79 4.11.78 4.11.77 4.11.76 4.11.75 3.20.5 4.11.69 3.20.6 4.11.7 3.20.7 4.11.70 3.20.8 4.11.71 3.20.9 4.11.72 3.21.1 4.11.73 3.21.2 4.11.74 3.21.3 4.11.8 3.21.4 4.11.9 3.21.5 4.2.0 3.21.6 4.2.1 3.3.0 4.2.2 3.3.1 4.2.3 3.3.2 4.2.4 3.3.3 4.2.5 3.3.4 4.2.6 3.3.5 4.2.7 3.3.6 4.2.8 3.3.7 4.2.9 3.3.8 4.3.0 3.3.9 4.3.1 3.4.0 4.3.2 3.4.1 4.3.3 3.4.2 4.3.4 3.4.3 4.3.5 3.4.4 4.3.6 3.4.5 4.3.7 3.4.6 4.3.8 3.4.7 4.3.9 3.4.8 4.4.0 3.4.9 4.4.1 3.5.0 4.4.2 3.5.1 4.4.3 3.5.2 4.4.4 3.5.3 4.4.5 3.5.4 4.4.6 3.5.5 4.4.7 3.5.6 4.4.8 3.5.7 4.4.9 3.5.8 4.5.0 3.5.9 4.5.1 3.6.0 4.5.2 3.6.1 4.5.3 3.6.2 4.5.4 3.6.3 4.5.5 3.6.4 4.5.6 3.6.5 4.5.7 3.6.6 4.5.8 3.6.7 4.5.9 3.6.8 4.6.0 3.6.9 4.6.1 3.7.0 4.7.0 3.7.1 4.7.1 3.7.2 4.7.2 3.7.3 4.7.3 3.7.4 4.7.4 3.7.5 4.7.5 3.7.6 4.7.6 3.7.7 4.7.7 3.7.8 4.7.8 3.7.9 4.7.9 3.8.0 4.8.0 3.8.1 4.8.1 3.8.2 4.8.10 3.8.3 4.8.11 3.8.4 4.8.2 3.8.5 4.8.3 3.8.6 4.8.4 3.8.7 4.8.5 3.8.8 4.8.6 3.8.9 4.8.7 3.9.0 4.8.8 3.9.1 4.8.9 3.9.2 4.9.0 3.9.3 4.9.0-beta1 3.9.4 4.9.0-beta2 3.9.5 4.9.1 3.9.6 4.9.10 3.9.7 4.9.11 3.9.8 4.9.12 3.9.9 4.9.13 4.0.1 4.9.14 4.0.3 4.9.15 4.0.4 4.9.16 4.0.5 4.9.17 4.0.6 4.9.18 4.0.7 4.9.19 4.0.8 4.9.2 4.0.9 4.9.20 4.1.0 4.9.21 4.1.1 4.9.22 4.1.2 4.9.23 4.1.3 4.9.24 trunk 4.1.4 4.9.25 1.0 4.1.5 4.9.26 1.01 4.1.6 4.9.27 1.02 4.1.7 4.9.28 1.03 4.1.8 4.9.29 1.04 4.1.9 4.9.3 1.05 4.10.0 4.9.30 1.06 4.10.1 4.9.31 1.07 4.10.10 4.9.32 1.08 4.10.11 4.9.33 1.09 4.10.12 4.9.34 2.0 4.10.13 4.9.35 2.0.1 4.10.14 4.9.36 2.0.2 4.10.15 4.9.37 2.0.3 4.10.16 4.9.38 2.0.4 4.10.17 4.9.39 2.0.5 4.10.18 4.9.4 2.0.6 4.10.19 4.9.40 2.0.7 4.10.2 4.9.41 2.0.8 4.10.20 4.9.42 2.0.9 4.10.21 4.9.43 2.1.0 4.10.22 4.9.45 2.1.1 4.10.23 4.9.46 2.1.2 4.10.24 4.9.47 2.1.3 4.10.25 4.9.48 2.1.4 4.10.26 4.9.49 2.1.5 4.10.27 4.9.5 2.1.5-beta1 4.10.28 4.9.50 2.1.6 4.10.29 4.9.51 2.1.7 4.10.3 4.9.52 2.1.8 4.10.30 4.9.53 2.1.9 4.10.31 4.9.54 2.2.0 4.10.32 4.9.55 2.2.1 4.10.33 4.9.56 2.2.2 4.10.34 4.9.57 2.2.3 4.10.35 4.9.6 2.2.4 4.10.36 4.9.7 2.2.5 4.10.37 4.9.8 2.2.6 4.10.38 4.9.9 2.2.7 4.10.39 2.2.8 4.10.4 2.2.9 4.10.40 2.3.0 4.10.41 2.3.1 4.10.42 2.3.2 4.10.43 2.3.3 4.10.44 2.3.4 4.10.45 2.3.5 4.10.46 2.3.6 4.10.47 2.3.7 4.10.48 2.3.8 4.10.49 2.3.9 4.10.5 2.4.0 4.10.50 2.4.1 4.10.51 2.5.0 4.10.52 2.5.1 4.10.53 2.5.2 4.10.54 2.5.3 4.10.55 2.5.4 4.10.56 2.5.5 4.10.57 2.5.6 4.10.58 2.5.7 4.10.59 2.5.8 4.10.6 2.5.9 4.10.60 2.6.0 4.10.61 2.6.1 4.10.62 2.6.2 4.10.63 2.6.3 4.10.64 2.6.4 4.10.65 2.6.5 4.10.66 2.6.6 4.10.67 2.6.7 4.10.68 2.6.8 4.10.69 2.6.9 4.10.7 2.7.0 4.10.70 2.7.1 4.10.71 2.7.2 4.10.72 2.7.3 4.10.73 2.7.4 4.10.74 2.7.5 4.10.75 2.7.6 4.10.76 2.7.7 4.10.77 2.7.8 4.10.78 2.7.9 4.10.79 2.8.0 4.10.8 2.8.1 4.10.80 2.8.2 4.10.81 2.8.3 4.10.82 2.8.4 4.10.83 2.8.5 4.10.84 2.8.6 4.10.85 2.8.7 4.10.86 2.8.8 4.10.87 2.8.9 4.10.88 2.9.0 4.10.89 2.9.1 4.10.9 2.9.2 4.10.90 2.9.3 4.11.0 2.9.4 4.11.1 2.9.5 4.11.10 2.9.6 4.11.11 2.9.7 4.11.12 2.9.8 4.11.13 2.9.9 4.11.14 3.0.0 4.11.15 3.0.1 4.11.16 3.0.2 4.11.17 3.0.3 4.11.18 3.0.4 4.11.19 3.0.5 4.11.2 3.0.6 4.11.20 3.0.7 4.11.21 3.0.8 4.11.22 3.0.9 4.11.23 3.1.0 4.11.24 3.1.1 4.11.25 3.1.2 4.11.26 3.1.3 4.11.27 3.1.4 4.11.28 3.1.5 4.11.29 3.1.6 4.11.3 3.1.7 4.11.30 3.1.8 4.11.31 3.1.9 4.11.32 3.10.0 4.11.33 3.10.1 4.11.34 3.10.2 4.11.35 3.10.3 4.11.36 3.10.4 4.11.37 3.10.5 4.11.38 3.10.6 4.11.39 3.10.7 4.11.4 3.10.8 4.11.40 3.10.9 4.11.41 3.11.0 4.11.42 3.11.1 4.11.43 3.11.2 4.11.44 3.11.3 4.11.45 3.11.4 4.11.46 3.11.5 4.11.47 3.11.6 4.11.48 3.11.7 4.11.49 3.11.8 4.11.5 3.11.9 4.11.50 3.12.0 4.11.51 3.12.1 4.11.52 3.12.2 4.11.53 3.12.3 4.11.54 3.2.0 4.11.55 3.2.1 4.11.56 3.2.2 4.11.57 3.2.3 4.11.58 3.2.4 4.11.59 3.2.5 4.11.6 3.2.6 4.11.60 3.2.7 4.11.61 3.2.8 4.11.62 3.2.9 4.11.63 3.20.0 4.11.64 3.20.1 4.11.65 3.20.2 4.11.66 3.20.3 4.11.67 3.20.4 4.11.68
premium-addons-for-elementor / includes / pa-display-conditions / conditions / acf-choice.php
premium-addons-for-elementor / includes / pa-display-conditions / conditions Last commit date
acf-boolean.php 4 years ago acf-choice.php 4 years ago acf-text.php 4 years ago browser.php 4 years ago condition.php 4 years ago date-range.php 4 years ago date.php 4 years ago day.php 4 years ago device.php 4 years ago ip-location.php 4 years ago lang.php 4 years ago login-status.php 4 years ago operating-system.php 4 years ago page.php 4 years ago post-type.php 4 years ago post.php 4 years ago time-range.php 4 years ago url-referer.php 4 years ago user-role.php 4 years ago woo-cat-page.php 4 years ago woo-category.php 4 years ago woo-last-purchase.php 4 years ago woo-orders.php 4 years ago woo-product-cat.php 4 years ago woo-product-price.php 4 years ago woo-product-stock.php 4 years ago woo-total-price.php 4 years ago
acf-choice.php
139 lines
1 <?php
2 /**
3 * Acf Choice Condition Handler.
4 */
5
6 namespace PremiumAddons\Includes\PA_Display_Conditions\Conditions;
7
8 // Elementor Classes.
9 use Elementor\Controls_Manager;
10
11 // PA Classes.
12 use PremiumAddons\Includes\ACF_Helper;
13 use PremiumAddons\Includes\Helper_Functions;
14 use PremiumAddons\Includes\Controls\Premium_Acf_Selector;
15
16 if ( ! defined( 'ABSPATH' ) ) {
17 exit; // Exit if accessed directly.
18 }
19
20 /**
21 * Class Acf_Choice.
22 */
23 class Acf_Choice extends Condition {
24
25 /**
26 * Holds defaults options for acf queries.
27 *
28 * @access protected
29 * @var $query_options_defaults.
30 */
31 protected $query_options_defaults = array(
32 'show_type' => false,
33 'show_field_type' => true,
34 'include_option' => true,
35 'show_group' => true,
36 'field_type' => 'choice',
37 );
38
39 /**
40 * Get Controls Options.
41 *
42 * @access public
43 * @since 4.7.0
44 *
45 * @return array|void controls options
46 */
47 public function get_control_options() {
48
49 return array(
50 'label' => __( 'Value', 'premium-addons-for-elementor' ),
51 'type' => Controls_Manager::TEXTAREA,
52 'label_block' => true,
53 'description' => __( 'Enter each accepted choice on a separate line in the same format as the field\'s return format. You can specify the value ( red ), the label ( Red ), or both value and label ( red : Red ).', 'premium-addons-for-elementor' ),
54 'condition' => array(
55 'pa_condition_key' => 'acf_choice',
56 ),
57 );
58
59 }
60
61 /**
62 * Get Query Options.
63 *
64 * @access public
65 * @since 4.7.0
66 *
67 * @return array|void controls options.
68 */
69 public function get_query_options() {
70 return $this->query_options_defaults;
71 }
72
73 /**
74 * Get Value Controls Options.
75 *
76 * @access public
77 * @since 4.7.0
78 *
79 * @return array controls options.
80 */
81 public function add_value_control() {
82
83 return array(
84 'label' => __( 'ACF Field', 'premium-addons-for-elementor' ),
85 'type' => Premium_Acf_Selector::TYPE,
86 'options' => array(),
87 'query_type' => 'acf',
88 'label_block' => true,
89 'multiple' => false,
90 'query_options' => $this->get_query_options(),
91 'description' => __( 'ACF Choice ( Select, Checkbox, Radio ).', 'premium-addons-for-elementor' ),
92 'condition' => array(
93 'pa_condition_key' => 'acf_choice',
94 ),
95 );
96
97 }
98
99 /**
100 * Compare Condition Value.
101 *
102 * @access public
103 * @since 4.7.0
104 *
105 * @param array $settings element settings.
106 * @param string $operator condition operator.
107 * @param string $value condition value.
108 * @param string|void $compare_val compare value.
109 * @param string|bool $tz time zone.
110 *
111 * @return bool|void
112 */
113 public function compare_value( $settings, $operator, $compare_val, $value, $tz ) {
114
115 $field = get_field_object( $value );
116
117 $acf_helper = new ACF_Helper();
118
119 $value = $acf_helper->get_acf_field_value( $value, $field['parent'] );
120
121 if ( empty( $value ) ) {
122 $condition_result = empty( $value ) === empty( $compare_val ) ? true : false;
123 } else {
124 $is_radio = 'radio' === $field['type'];
125
126 $single_select = 'select' === $field['type'] && ! $field['multiple'] ? true : false;
127
128 $field_values = ACF_Helper::format_acf_values( $value, $field['return_format'], $is_radio, $single_select );
129
130 $compare_vals = false !== strpos( $compare_val, ' : ' ) ? explode( "\n", ( $compare_val ) ) : array( $compare_val . ' : ' . $compare_val );
131
132 $condition_result = ! empty( array_intersect( $compare_vals, $field_values ) ) ? true : false;
133 }
134
135 return Helper_Functions::get_final_result( $condition_result, $operator );
136 }
137
138 }
139