WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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.5.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 - 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;
}
petrozavodsky 841alkoweb.ru
Делаю веб руками.
Редакторы: campusboy 4752, Kama 9619
5 комментариев
    Войти