PluginProbe ʕ •ᴥ•ʔ
Premium Addons for Elementor – Powerful Elementor Templates & Widgets / 4.9.40
Premium Addons for Elementor – Powerful Elementor Templates & Widgets v4.9.40
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 3 years ago acf-choice.php 3 years ago acf-text.php 3 years ago browser.php 3 years ago condition.php 3 years ago date-range.php 3 years ago date.php 3 years ago day.php 3 years ago device.php 3 years ago ip-location.php 3 years ago lang.php 3 years ago login-status.php 3 years ago operating-system.php 3 years ago page.php 3 years ago post-type.php 3 years ago post.php 3 years ago return-visitor.php 3 years ago shortcode.php 3 years ago static-page.php 3 years ago time-range.php 3 years ago url-referer.php 3 years ago url-string.php 3 years ago user-role.php 3 years ago woo-cart-products.php 3 years ago woo-cat-page.php 3 years ago woo-category.php 3 years ago woo-last-purchase.php 3 years ago woo-orders.php 3 years ago woo-product-cat.php 3 years ago woo-product-price.php 3 years ago woo-product-stock.php 3 years ago woo-total-price.php 3 years ago
operating-system.php
114 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'] ) ? filter_var( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ), FILTER_SANITIZE_STRING ) : '';
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
113 }
114