wp_check_browser_version() WP 3.2.0

Перевіряє, чи потрібно оновити браузер користувача.

Надсилає запити, що містить рядок $_SERVER[‘HTTP_USER_AGENT’] до зовнішнього сервісу API http://api.wordpress.org/core/browse-happy/1.1/ який розбирає рядок і повертає дані про браузер користувача та інші дані.

Оскільки розбір рядка відбувається віддалено, час роботи функції залежить від часу відповіді API. Відповідь може взагалі не прийти через відсутність з’єднання з API або інших причин.

Результат виконання функції кешується на тиждень (зберігається у часові налаштування). Тому повільно функція буде працювати тільки перший дзвінок для нового браузера, решта дзвінків будуть моментальні.

Функція знаходиться у файлі wp-admin/includes/dashboard.php , в якому знаходяться функції, що стосуються безпосередньо сторінки адмінки Консоль. Тому перед використанням функції потрібно підключити цей файл, щоб функцію було визначено на момент виклику.

require_once( ABSPATH .'/wp-admin/includes/dashboard.php' );

Працює на основі:
wp_remote_post() ,
set_site_transient()

Хуків немає.

Повертає

Массив|false. false у разі виникнення помилки у процесі перевірки. Масив даних про браузер у разі успішної перевірки.

Приклад повертається масиву.

array(
	'platform' => 'Windows',
	'name' => 'Firefox',
	'version' => '53.0',
	'update_url' => 'http://www.firefox.com/',
	'img_src' => 'http://s.wordpress.org/images/browsers/firefox.png',
	'img_src_ssl' => 'https://wordpress.org/images/browsers/firefox.png',
	'current_version' => '16',
	'upgrade' => FALSE,
	'insecure' => FALSE,
);
  • platform – назва ОС відвідувача.
  • name – назва браузера.
  • version – версія браузера.
  • update_url – посилання на домашню сторінку браузера.
  • img_src – посилання на логотип браузера, що використовує за протоколом http.
  • img_src_ssl – теж саме по https.
  • current_version – остання версія браузера.
  • upgrade – логічний тип true або false визначає, чи потрібно оновити поточний браузер, якщо браузер вважається застарілим.
  • insecure – логічний тип true або false визначає, чи безпечно використовувати поточну версію браузера.

Використання

$browser_data = wp_check_browser_version();

Приклади

0

#1 Використання в адмінці

// Отримуємо інформацію про браузері в адмінці там, де вона доступна.
add_action( 'admin_head', function (){
	if ( ! function_exists( 'wp_check_browser_version' ) ) {
		include_once(ABSPATH. 'wp-admin/includes/dashboard.php');
	}

	$array = wp_check_browser_version();

	var_dump($array);
});
0

#2 Використання у зовнішній частині сайту

// Отримуємо інформацію про браузер у зовнішній частині сайту
// якщо функція недоступна, спочатку підключимо потрібний файл
add_action( 'wp', function () {

	if ( ! function_exists( 'wp_check_browser_version' ) ) {
		include_once(ABSPATH. 'wp-admin/includes/dashboard.php');
	}

	$array = wp_check_browser_version();

	var_dump($array);
} );

список змін

З версії 3.2.0Введено.

Код wp_check_browser_version() WP 6.0.2

function wp_check_browser_version() {
	if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
		return false;
	}

	$key = md5( $_SERVER['HTTP_USER_AGENT'] );

	$response = get_site_transient( 'browser_' . $key );

	if ( false === $response ) {
		// Include an unmodified $wp_version.
		require ABSPATH. WPINC. '/version.php';

		$url = 'http://api.wordpress.org/core/browse-happy/1.1/';
		$options = array(
			'body' => array( 'useragent' => $_SERVER['HTTP_USER_AGENT'] ),
			'user-agent' => 'WordPress/' . $wp_version. '; '. home_url( '/' ),
		);

		if ( wp_http_supports( array( 'ssl' ) ) ) ) {
			$url = set_url_scheme($url, 'https');
		}

		$response = wp_remote_post($url, $options);

		if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
			return false;
		}

		/**
		 * Response should be an array with:
		 * 'platform' - string - A user-friendly platform name, if it can be determined
		 * 'name' - string - A user-friendly browser name
		 * 'version' - string - version of the browser the user is using
		 * 'current_version' - string - The most recent version of the browser
		 * 'upgrade' - boolean - Whether the browser потрібна an upgrade
		 * 'insecure' - boolean - Whether the browser is deemed insecure
		 * 'update_url' - string - url to visit to upgrade
		 * 'img_src' - string - An image representing the browser
		 * 'img_src_ssl' - string - An image (over SSL) representing the browser
		 */
		$ Response = json_decode (wp_remote_retrieve_body ($ Response), true);

		if (! is_array($response)) {
			return false;
		}

		set_site_transient( 'browser_' . $key, $response, WEEK_IN_SECONDS );
	}

	return $response;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *