# optin/trunk/includes/utils/class-os.php

WowOptin: Next-Gen Popup Maker – Create Stunning Popups and Optins for Lead Generation, version trunk. 61 lines.

- Page: https://pluginprobe.com/plugins/optin/trunk/code/includes/utils/class-os.php
- Raw: https://pluginprobe.com/plugins/optin/trunk/raw/includes/utils/class-os.php
- Modified: 2026-05-06T10:46:56+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/optin/trunk/code/includes/utils/class-os.php#L10-L20`.

```php
<?php

namespace OPTN\Includes\Utils;

use OPTN\Includes\Utils\Device;

class Os {

	private static $desktop_oses =
		array(
			'/windows nt 10/i'      => 'Windows',
			'/windows nt 6.3/i'     => 'Windows',
			'/windows nt 6.2/i'     => 'Windows',
			'/windows nt 6.1/i'     => 'Windows',
			'/windows nt 6.0/i'     => 'Windows',
			'/windows nt 5.2/i'     => 'Windows',
			'/windows nt 5.1/i'     => 'Windows',
			'/windows xp/i'         => 'Windows',
			'/windows nt 5.0/i'     => 'Windows',
			'/windows me/i'         => 'Windows',
			'/win98/i'              => 'Windows',
			'/win95/i'              => 'Windows',
			'/win16/i'              => 'Windows',
			'/macintosh|mac os x/i' => 'Mac',
			'/mac_powerpc/i'        => 'Mac',
			'/linux/i'              => 'Linux',
			'/ubuntu/i'             => 'Linux',
		);

	private static $mobile_oses =
		array(
			'/android/i'    => 'Android',
			'/blackberry/i' => 'Android',
			'/webos/i'      => 'Android',
			'/iphone/i'     => 'iOS',
			'/ipod/i'       => 'iOS',
			'/ipad/i'       => 'iOS',
		);

	public static function getOS() {

		if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
			return 'Windows';
		}

		$user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ); // phpcs:ignore

		$device = Device::get_device( $user_agent );

		$os_list = $device === 'lg' ? self::$desktop_oses : self::$mobile_oses;

		foreach ( $os_list as $regex => $value ) {
			if ( preg_match( $regex, $user_agent ) ) {
				return $value;
			}
		}

		return $device === 'lg' ? 'Windows' : 'Android';
	}
}

```
