Página 1 de 2

[TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 26 Jul 2018, 12:39
por Manoel Vidal
** Os bugs citados não são falhas de segurança, são problemas no código que causam mal funcionamento.

1º Erro na validação dos campos customizados de endereço no formulário de cadastro de endereço do checkout:

- Nos arquivos:
catalog/controller/checkout/payment_address.php
catalog/controller/checkout/shipping_address.php

- Localize a linha de código abaixo:
Código: Selecionar todos
} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && !filter_var($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $custom_field['validation'])))) {

- E substitua pela linha de código abaixo:
Código: Selecionar todos
} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && filter_var($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/' . html_entity_decode($custom_field['validation'], ENT_QUOTES, 'UTF-8') . '/')))) {

2º Erro na exibição da descrição do título da página do carrinho na loja.

- No arquivo:
catalog/controller/checkout/cart.php

- Localize a linha de código abaixo:
Código: Selecionar todos
$this->document->setTitle($this->language->get('heading_title'));

- E após ela adicione o código abaixo:
Código: Selecionar todos
$data['heading_title'] = $this->language->get('heading_title');

3º Mensagem de confirmação em branco após enviar o formulário de fale conosco:

- No arquivo:
catalog/controller/information/contact.php

- Localize a linha de código abaixo:
Código: Selecionar todos
$data['continue'] = $this->url->link('common/home');

- E após ela adicione o código abaixo:
Código: Selecionar todos
$data['text_message'] = $this->language->get('text_success');

4º Erro de validação na edição do cadastro de clientes e pedidos na administração da loja:

- No arquivo:
catalog/controller/api/customer.php

- Localize a linha de código abaixo:
Código: Selecionar todos
} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && !filter_var($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $custom_field['validation'])))) {

- E substitua pela linha de código abaixo:
Código: Selecionar todos
} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && filter_var($this->request->post['custom_field'][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/' . html_entity_decode($custom_field['validation'], ENT_QUOTES, 'UTF-8') . '/')))) {

- Localize a linha de código abaixo:
Código: Selecionar todos
if ($custom_field['required'] && empty($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']])) {

- E substitua pela linha de código abaixo:
Código: Selecionar todos
if ($custom_field['required'] && empty($this->request->post['custom_field'][$custom_field['custom_field_id']])) {

- Nos arquivos:
catalog/controller/api/payment.php
catalog/controller/api/shipping.php

- Localize a linha de código abaixo:
Código: Selecionar todos
} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && !filter_var($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $custom_field['validation'])))) {

- E substitua pela linha de código abaixo:
Código: Selecionar todos
} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && filter_var($this->request->post['custom_field'][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/' . html_entity_decode($custom_field['validation'], ENT_QUOTES, 'UTF-8') . '/')))) {

- Localize a linha de código abaixo:
Código: Selecionar todos
if ($custom_field['required'] && empty($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']])) {

- E substitua pela linha de código abaixo:
Código: Selecionar todos
if ($custom_field['required'] && empty($this->request->post['custom_field'][$custom_field['custom_field_id']])) {

5º Erro no módulo de pagamento Grátis:

- No arquivo:
admin/controller/extension/payment/free_checkout.php

- Localize as linhas de código abaixo:
Código: Selecionar todos
		if (isset($this->request->post['free_checkout_order_status_id'])) {
			$data['free_checkout_order_status_id'] = $this->request->post['free_checkout_order_status_id'];
		} else {
			$data['free_checkout_order_status_id'] = $this->config->get('free_checkout_order_status_id');
		}

- E substitua pelas linhas de código abaixo:
Código: Selecionar todos
		if (isset($this->request->post['payment_free_checkout_status'])) {
			$data['payment_free_checkout_status'] = $this->request->post['payment_free_checkout_order_status_id'];
		} else {
			$data['payment_free_checkout_status'] = $this->config->get('payment_free_checkout_status');
		}

- No arquivo:
admin/view/template/extension/payment/free_checkout.twig

- Localize as linhas de código abaixo:
Código: Selecionar todos
              <select name="free_checkout_order_status_id" id="input-order-status" class="form-control">
                {% for order_status in order_statuses %}
                {% if order_status.order_status_id == free_checkout_order_status_id %}
                <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option>
                {% else %}
                <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option>
                {% endif %}
                {% endfor %}
              </select>

- E substitua pelas linhas de código abaixo:
Código: Selecionar todos
              <select name="payment_free_checkout_order_status_id" id="input-order-status" class="form-control">
                {% for order_status in order_statuses %}
                {% if order_status.order_status_id == payment_free_checkout_order_status_id %}
                <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option>
                {% else %}
                <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option>
                {% endif %}
                {% endfor %}
              </select>

6º Erro ao editar o pedido com produtos que contenham opções com peso:

- No arquivo:
admin/controller/sale/order.php

- Localize a linha de código abaixo:
Código: Selecionar todos
$option_weight = '';

- E substitua pela linha de código abaixo:
Código: Selecionar todos
$option_weight = 0;

- Localize a linha de código abaixo:
Código: Selecionar todos
if ($product_option_value_info) {

- E substitua pela linha de código abaixo:
Código: Selecionar todos
if (!empty($product_option_value_info['weight_prefix'])) {

7º Erro no título de várias páginas na loja:

- No arquivo:
system/config/catalog.php

- Localize e remova as linhas de código abaixo:
Código: Selecionar todos
	'controller/*/after'  => array(
		'event/debug/after'
	)

8º Erro ao salvar a localização de uma nova loja cadastrada no multilojas:

- No arquivo:
admin/controller/setting/store.php

- Localize a linha de código abaixo:
Código: Selecionar todos
$this->config->get('config_location');

- E substitua pela linha de código abaixo:
Código: Selecionar todos
$store_info['config_location'];

9º Erro ao resetar o contador de produtos visualizados:

- No arquivo:
admin/controller/extension/report/product_viewed.php

- Localize a linha de código abaixo:
Código: Selecionar todos
$this->response->redirect($this->url->link('report/report', 'user_token=' . $this->session->data['user_token'] . '&code=product_viewed' . $url, true));

- E substitua pela linha de código abaixo:
Código: Selecionar todos
$this->response->redirect($this->url->link('report/report', 'user_token=' . $this->session->data['user_token'] . '&code=product_viewed', true));

10º Erro 400 ao acessar o marketplace em servidores Nginx com Cloudflare:

- No arquivo:
admin/controller/markeplace/marketplace.php

- Localize todas as ocorrências da linha de código abaixo:
Código: Selecionar todos
curl_setopt($curl, CURLOPT_POST, 1);

- E substitua pela linha de código abaixo:
Código: Selecionar todos
curl_setopt($curl, CURLOPT_POST, 0);

Concluindo:

vá no menu Extensões→Modificações e clique no botão "Atualizar" (cor azul claro), para atualizar o cache de modificações, depois vá na página principal do painel de controle da administração da loja, abaixo do botão "Sair", você verá um botão na cor azul com o desenho de uma engrenagem branca dentro dele, clique neste botão, e no popup que vai abrir, clique nos dois botões na cor laranja que estão dentro da coluna "Ação" para atualizar o cache do tema.

Espero ter ajudado. :)

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 10 Ago 2018, 05:55
por Manoel Vidal
Atualizado! :roll:

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 15 Ago 2018, 12:26
por jgs82
Parabéns Manoel por manter essa comunidade ativa.

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 22 Set 2018, 20:21
por leandrorppo
Ótimo trabalho!
Parabéns e obrigado pela disponibilidade em postar as correções!

Seguem mais duas:
Corrigindo -> exibição de estrelas de comentários no módulo de Destaque:
viewtopic.php?f=93&t=17554

Correção -> para texto Lista de Desejos que exibe quantidade de produtos adicionados:
viewtopic.php?f=93&t=17475

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 23 Set 2018, 09:48
por Manoel Vidal
Já adicionei ele github do Projeto OpenCart Brasil: :D
https://github.com/opencartbrasil/openc ... its/master

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 23 Set 2018, 11:50
por leandrorppo
Que beleza! Obrigado, Manoel!

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 23 Set 2018, 18:39
por Manoel Vidal
Eu que agradeço! Adicionei uma referência ao usuário @leandrorppo nas duas correções dentro do CHANGELOG.md :)

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 14 Set 2019, 20:46
por eugeniots
@Manoel Vidal sempre nota mil as suas ajudas, só uma dúvida, ainda é necessário fazer estas alterações baixando agora a última versão ou elas já estão com essas correções?

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 03 Mai 2020, 13:57
por peiretti
Muito obrigado @Manoel Vidal pela ajuda, eu estava com esse erro de validação de campos personalizados na edição do pedido, agora corrigiu.
Mas estou com outro problema, quando avanço para a aba Detalhes do Envio, o campo personalizado Número do endereço está vindo vazio.
Já viu esse bug?
Muito obrigado,

Re: [TUTORIAL] Corrigindo 10 bugs do OpenCart 3.0.2.0

Enviado: 02 Jul 2020, 13:05
por ivanms
Olá Manoel parabéns pela lista,
você poderia criar um Fix Ocmod para resolvermos tudo através de uma extensão seria legal

Eu fiz uma correção na versão atual do Opencart sobre a questão do erro relatado na edição dos pedidos,
poderia incluir também segue o link

https://github.com/opencart/opencart/issues/7979