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 / operating-system.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
operating-system.php
112 lines
1 <?php
2 /**
3 * Operating System 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\Helper_Functions;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit; // Exit if accessed directly.
16 }
17
18 /**
19 * Class Operating System
20 */
21 class Operating_System extends Condition {
22
23 /**
24 * Get Controls Options.
25 *
26 * @access public
27 * @since 4.7.0
28 *
29 * @return array|void controls options
30 */
31 public function get_control_options() {
32
33 return array(
34 'label' => __( 'Value', 'premium-addons-for-elementor' ),
35 'type' => Controls_Manager::SELECT2,
36 'default' => array( 'windows' ),
37 'label_block' => true,
38 'options' => array(
39 'windows' => __( 'Windows', 'premium-addons-for-elementor' ),
40 'mac_os' => __( 'Mac OS', 'premium-addons-for-elementor' ),
41 'linux' => __( 'Linux', 'premium-addons-for-elementor' ),
42 'iphone' => __( 'iPhone', 'premium-addons-for-elementor' ),
43 'android' => __( 'Android', 'premium-addons-for-elementor' ),
44 'blackberry' => __( 'BlackBerry', 'premium-addons-for-elementor' ),
45 'open_bsd' => __( 'OpenBSD', 'premium-addons-for-elementor' ),
46 'sun_os' => __( 'SunOS', 'premium-addons-for-elementor' ),
47 'qnx' => __( 'QNX', 'premium-addons-for-elementor' ),
48 'beos' => __( 'BeOS', 'premium-addons-for-elementor' ),
49 'os2' => __( 'OS/2', 'premium-addons-for-elementor' ),
50 ),
51 'multiple' => true,
52 'condition' => array(
53 'pa_condition_key' => 'operating_system',
54 ),
55 );
56 }
57
58 /**
59 * Compare Condition Value.
60 *
61 * @access public
62 * @since 4.7.0
63 *
64 * @param array $settings element settings.
65 * @param string $operator condition operator.
66 * @param string $value condition value.
67 * @param string $compare_val compare value.
68 * @param string|bool $tz time zone.
69 *
70 * @return bool|void
71 */
72 public function compare_value( $settings, $operator, $value, $compare_val, $tz ) {
73
74 $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '';
75
76 $os_list = array(
77 'windows' => '(Win16)|(Windows 95)|(Win95)|(Windows_95)|(Windows 98)|(Win98)|(Windows NT 5.0)|(Windows 2000)|(Windows NT 5.1)|(Windows XP)|(Windows NT 5.2)|(Windows NT 6.0)|(Windows Vista)|(Windows NT 6.1)|(Windows 7)|(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)|(Windows ME)',
78 'mac_os' => '(Mac_PowerPC)|(Macintosh)|(mac os x)',
79 'linux' => '(Linux)|(X11)',
80 'iphone' => 'iPhone',
81 'android' => '(Android)',
82 'blackberry' => 'BlackBerry',
83 'open_bsd' => 'OpenBSD',
84 'sun_os' => 'SunOS',
85 'qnx' => 'QNX',
86 'beos' => 'BeOS',
87 );
88
89 $current_os = array();
90
91 foreach ( $os_list as $key => $key_val ) {
92
93 $match = preg_match( '/' . $key_val . '/i', $user_agent );
94
95 if ( $match ) {
96 array_push( $current_os, $key );
97
98 // We need to remove mac_os if iPhone is the current OS, and Linux if Android is the current OS
99 if ( 'iphone' === $key ) {
100 array_shift( $current_os );
101 } elseif ( 'android' === $key ) {
102 array_shift( $current_os );
103 }
104 }
105 }
106
107 $result = ! empty( array_intersect( $value, $current_os ) ) ? true : false;
108
109 return Helper_Functions::get_final_result( $result, $operator );
110 }
111 }
112