WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

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();

Примеры

#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 );
});

#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 );
} );

Код wp check browser version: wp-admin/includes/dashboard.php WP 4.8

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

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

	if ( false === ($response = get_site_transient('browser_' . $key) ) ) {
		$options = array(
			'body'			=> array( 'useragent' => $_SERVER['HTTP_USER_AGENT'] ),
			'user-agent'	=> 'WordPress/' . get_bloginfo( 'version' ) . '; ' . home_url()
		);

		$response = wp_remote_post( 'http://api.wordpress.org/core/browse-happy/1.1/', $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 - The version of the browser the user is using
		 *  'current_version' - string - The most recent version of the browser
		 *  'upgrade' - boolean - Whether the browser needs an upgrade
		 *  'insecure' - boolean - Whether the browser is deemed insecure
		 *  'update_url' - string - The 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;
}

Cвязанные функции

Из раздела: Без рубрики

petrozavodsky 674alkoweb.ru
Делаю веб, можно сказать работаю с WordPress. Временами живу в Краснодаре.
wp_check_browser_version Комментариев нет

Здравствуйте, !

Ваш комментарий