PluginProbe ʕ •ᴥ•ʔ
Premium Addons for Elementor – Powerful Elementor Templates & Widgets / 4.11.34
Premium Addons for Elementor – Powerful Elementor Templates & Widgets v4.11.34
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 9 months ago acf-choice.php 9 months ago acf-text.php 9 months ago browser.php 9 months ago condition.php 9 months ago date-range.php 9 months ago date.php 9 months ago day.php 9 months ago device.php 9 months ago ip-location.php 9 months ago lang.php 9 months ago login-status.php 9 months ago operating-system.php 9 months ago page.php 9 months ago post-category.php 9 months ago post-format.php 9 months ago post-type.php 9 months ago post.php 9 months ago return-visitor.php 9 months ago shortcode.php 9 months ago static-page.php 9 months ago time-range.php 9 months ago url-referer.php 9 months ago url-string.php 9 months ago user-role.php 9 months ago woo-cart-products.php 9 months ago woo-cat-page.php 9 months ago woo-category.php 9 months ago woo-last-purchase.php 9 months ago woo-orders.php 9 months ago woo-product-cat.php 9 months ago woo-product-price.php 9 months ago woo-product-stock.php 9 months ago woo-purchase-products.php 9 months ago woo-total-price.php 9 months ago
acf-choice.php
136 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 * Get Query Options.
62 *
63 * @access public
64 * @since 4.7.0
65 *
66 * @return array|void controls options.
67 */
68 public function get_query_options() {
69 return $this->query_options_defaults;
70 }
71
72 /**
73 * Get Value Controls Options.
74 *
75 * @access public
76 * @since 4.7.0
77 *
78 * @return array controls options.
79 */
80 public function add_value_control() {
81
82 return array(
83 'label' => __( 'ACF Field', 'premium-addons-for-elementor' ),
84 'type' => Premium_Acf_Selector::TYPE,
85 'options' => array(),
86 'query_type' => 'acf',
87 'label_block' => true,
88 'multiple' => false,
89 'query_options' => $this->get_query_options(),
90 'description' => __( 'ACF Choice ( Select, Checkbox, Radio ).', 'premium-addons-for-elementor' ),
91 'condition' => array(
92 'pa_condition_key' => 'acf_choice',
93 ),
94 );
95 }
96
97 /**
98 * Compare Condition Value.
99 *
100 * @access public
101 * @since 4.7.0
102 *
103 * @param array $settings element settings.
104 * @param string $operator condition operator.
105 * @param string $value condition value.
106 * @param string|void $compare_val compare value.
107 * @param string|bool $tz time zone.
108 *
109 * @return bool|void
110 */
111 public function compare_value( $settings, $operator, $compare_val, $value, $tz ) {
112
113 $field = get_field_object( $value );
114
115 $acf_helper = new ACF_Helper();
116
117 $value = $acf_helper->get_acf_field_value( $value, $field['parent'] );
118
119 if ( empty( $value ) ) {
120 $condition_result = empty( $value ) === empty( $compare_val ) ? true : false;
121 } else {
122 $is_radio = 'radio' === $field['type'];
123
124 $single_select = 'select' === $field['type'] && ! $field['multiple'] ? true : false;
125
126 $field_values = ACF_Helper::format_acf_values( $value, $field['return_format'], $is_radio, $single_select );
127
128 $compare_vals = false !== strpos( $compare_val, ' : ' ) ? explode( "\n", ( $compare_val ) ) : array( $compare_val . ' : ' . $compare_val );
129
130 $condition_result = ! empty( array_intersect( $compare_vals, $field_values ) ) ? true : false;
131 }
132
133 return Helper_Functions::get_final_result( $condition_result, $operator );
134 }
135 }
136