+0 000-000-00-00

Промостикеры Opencart 2.3 по https

Взято с форума, автор Nickbur

В рамках большой работы над магазином нужно было в том числе сделать возможной нормальную работу сайта одновременно по обоим протоколам - http и https. Одна из причин, почему работа с https была неполноценной - пути к изображениям стикеров генерились исключительно с http в ссылке. Этот фикс исправляет этот косяк.

 Везде где есть

'image' => HTTP_SERVER . 'image/' . $sticker['image']

сделать в целом вот так:

if ($this->request->server['HTTPS']) {
	$prot_server = HTTPS_SERVER;
} else {
	$prot_server = HTTP_SERVER;
}

foreach ($stickers as $sticker) {
	$data['stickers'][] = array(
		'position' => $sticker['position'],
		'image'    => $prot_server . 'image/' . $sticker['image']
	);		
}

  

Заменил во всех этих файлах, сразу ничего не поменялось. Говорят, в версии 2.3.0.2.6 баг исправлен, но 2.3.0.2.6 Pro нет, и судя по всему, не будет.

 

Сработало добавление вот такого кода в config.php

// Check if SSL
if ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) || $_SERVER['SERVER_PORT'] == 443) {
	$https = true;
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
	$https = true;
} else {
	$https = false;
}

if ($https) {
	define('HTTP_SERVER', 'https://shop.solarhome.ru/');
	define('HTTPS_SERVER', 'https://shop.solarhome.ru/');
} else {
	define('HTTP_SERVER', 'http://shop.solarhome.ru/');
	define('HTTPS_SERVER', 'http://shop.solarhome.ru/');
}

 

    Опубликовано

    Menu