Fórum OpenCart Brasil

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

#78706
** 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. :)
MarcosLegal gostou disso
#79415
Ó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
Manoel Vidal, leandrocs gostou disso
[Resolvido] Melhorar o campo de busca

Obrigado pelo retorno, eu esqueci de mencionar que[…]

Boa tarde pessoal, Estou com um projeto em fase d[…]

Amigo por favor pode me explicar como fazer o proc[…]

Orçamento por Produtos

Gostaria que, em alguns produtos, o botão d[…]