Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v3.x.
#80638
Boa tarde,
Estou com o Opencart Versão 3.0.3.1 e gostaria travar a visualização do site apenas após cadastro e login aprovados. Sou novo ainda e muito leigo na plataforma, mas com certeza vai ser muito bom.

Obs: encontrei esse tópico que pedia para fazer isso na versão:

viewtopic.php?t=2392

Porém nesta versão ele da erro 500 ao incluir estes códigos:
Código: Selecionar todos
if (!$this->customer->isLogged()) {
		$this->session->data['redirect'] = $this->url->link('account/account', '', 'SSL');
		$this->redirect($this->url->link('account/login', '', 'SSL'));
Meu arquivo ficou assim:
Código: Selecionar todos
<?php
class ControllerCommonHome extends Controller {
	public function index() {

if (!$this->customer->isLogged()) {
		$this->session->data['redirect'] = $this->url->link('account/account', '', 'SSL');
		$this->redirect($this->url->link('account/login', '', 'SSL'));

		$this->document->setTitle($this->config->get('config_meta_title'));
		$this->document->setDescription($this->config->get('config_meta_description'));
		$this->document->setKeywords($this->config->get('config_meta_keyword'));

		if (isset($this->request->get['route'])) {
			$this->document->addLink($this->config->get('config_url'), 'canonical');
		}


		$data['column_left'] = $this->load->controller('common/column_left');
		$data['column_right'] = $this->load->controller('common/column_right');
		$data['content_top'] = $this->load->controller('common/content_top');
		$data['content_bottom'] = $this->load->controller('common/content_bottom');
		$data['footer'] = $this->load->controller('common/footer');
		$data['header'] = $this->load->controller('common/header');

		$this->response->setOutput($this->load->view('common/home', $data));
	}

}
#80646
Olá @caiobernal.

Deu erro porque você copiou o código incompleto, e não levou em consideração que é incompatível com sua versão do OpenCart 3.

O código correto que deve ser inserido é:
Código: Selecionar todos
if (!$this->customer->isLogged()) {
    $this->session->data['redirect'] = $this->url->link('account/account', '', true);

    $this->response->redirect($this->url->link('account/login', '', true));
}

Espero ter ajudado. :)
caiobernal gostou disso
#80652
Você é o cara, funcionou top. Agora a segunda pergunta, preciso fazer o mesmo processo para o restante?
Os outros que havia colocado em produtos e etc?

"Salve e tente acessar a página principal de sua loja, você notará que você vai ser redirecionado para a página de autenticação, caso não esteja logado na loja, e o mesmo procedimento acima você deve fazer nos arquivos product.php, category.php, special.php, manufacturer.php e search.php que estão no diretório /catalog/controller/product/, assim você terá certeza que todo acesso aos produtos, só poderá ocorrer se o clientes estiver logado."
Manoel Vidal gostou disso

Looking for a partner for an unforgettable night? […]

Olá! Tudo bem? Verifique as configura&cced[…]

Olá! Tudo bem? Trabalho com Opencart h&aac[…]

Imagem do Carrinho de Compras

Olá! Tudo bem? São vários lo[…]