<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
* This file holds a function that needs to be loaded before WordPress itself
* @package automattic/jetpack
use Automattic\Jetpack\Device_Detection;
* Determine if the current User Agent matches the passed $kind
* @param string $kind Category of mobile device to check for.
* Either: any, dumb, smart.
* @param bool $return_matched_agent Boolean indicating if the UA should be returned.
* @return bool|string Boolean indicating if current UA matches $kind. If
* $return_matched_agent is true, returns the UA string
function jetpack_is_mobile( $kind = 'any', $return_matched_agent = false ) {
if ( function_exists( 'apply_filters' ) ) {
* Filter the value of jetpack_is_mobile before it is calculated.
* Passing a truthy value to the filter will short-circuit determining the
* mobile type, returning the passed value instead.
* @param bool|string $matches Boolean if current UA matches $kind or not. If
* $return_matched_agent is true, should return the UA string
* @param string $kind Category of mobile device being checked
* @param bool $return_matched_agent Boolean indicating if the UA should be returned
$pre = apply_filters( 'pre_jetpack_is_mobile', null, $kind, $return_matched_agent );
$device_info = Device_Detection::get_info();
$return = $device_info['is_phone'];
} elseif ( 'smart' === $kind ) {
$return = $device_info['is_smartphone'];
} elseif ( 'dumb' === $kind ) {
$return = $device_info['is_phone'] && ! $device_info['is_smartphone'];
if ( $return_matched_agent && true === $return ) {
$return = $device_info['is_phone_matched_ua'];
if ( function_exists( 'apply_filters' ) ) {
* Filter the value of jetpack_is_mobile
* @param bool|string $matches Boolean if current UA matches $kind or not. If
* $return_matched_agent is true, should return the UA string
* @param string $kind Category of mobile device being checked
* @param bool $return_matched_agent Boolean indicating if the UA should be returned
$return = apply_filters( 'jetpack_is_mobile', $return, $kind, $return_matched_agent );