Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
jsarnowski/jet-popup / conditions / advanced-device.php
Size: Mime:
<?php
/**
 * Is front page condition
 */

// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
	die;
}

if ( ! class_exists( 'Jet_Popup_Conditions_Advanced_Device' ) ) {

	class Jet_Popup_Conditions_Advanced_Device extends Jet_Popup_Conditions_Base {

		/**
		 * Condition slug
		 *
		 * @return string
		 */
		public function get_id() {
			return 'device';
		}

		/**
		 * Condition label
		 *
		 * @return string
		 */
		public function get_label() {
			return __( 'Device', 'jet-popup' );
		}

		/**
		 * Condition group
		 *
		 * @return string
		 */
		public function get_group() {
			return 'advanced';
		}

		/**
		 * [get_control description]
		 * @return [type] [description]
		 */
		public function get_control() {
			return [
				'type'        => 'f-select',
				'placeholder' => __( 'Select device', 'jet-popup' ),
			];
		}

		/**
		 * [get_avaliable_options description]
		 * @return [type] [description]
		 */
		public function get_avaliable_options() {
			return [
				[
					'label' => __( 'Desktop', 'jet-popup' ),
					'value' => 'desktop',
				],
				[
					'label' => __( 'Tablet', 'jet-popup' ),
					'value' => 'tablet',
				],
				[
					'label' => __( 'Mobile', 'jet-popup' ),
					'value' => 'mobile',
				],
			];
		}

		/**
		 * [ajax_action description]
		 * @return [type] [description]
		 */
		public function ajax_action() {
			return false;
		}

		/**
		 * [get_label_by_value description]
		 * @param  string $value [description]
		 * @return [type]        [description]
		 */
		public function get_label_by_value( $value = '' ) {

			$device_string = '';

			if ( ! empty( $value ) && is_array( $value ) ) {
				$device_string = implode( ', ', $value );
			}

			return $device_string;
		}

		/**
		 * Condition check callback
		 *
		 * @return bool
		 */
		public function check( $arg = '' ) {

			if ( empty( $arg ) ) {
				return false;
			}

			$mobile_detect = new Mobile_Detect;

			if ( $mobile_detect->isTablet() ) {
				$curr_device = 'tablet';
			} elseif ( $mobile_detect->isMobile() ) {
				$curr_device = 'mobile';
			} else {
				$curr_device = 'desktop';
			}

			if ( in_array( $curr_device, $arg ) ) {
				return true;
			}

			return false;
		}

	}

}