Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v2.x.
#71648
Olá Pessoal,

Na minha loja 2.0.3.1 ao tentar editar qualquer coisa na conta do cliente na aba "ENDEREÇOS" dá esse erro abaixo:

Notice: Undefined index: company in /home/xxxxxx/public_html/catalog/model/account/address.php on line 22Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxxx/public_html/index.php:101) in /home/xxxxxx/public_html/system/library/response.php on line 12

OBS-1) As alterações são efetivadas, porém dá esse erro acima sem nenhuma opção de sair da página, para nós que estamos acostumados simplesmente damos um Voltar no navegador e a página volta já com a alteração feita, mas um cliente novato irá fechar a loja pensando ter ocorrido um bug no site. Ao tentar criar um novo endereço também dá o erro.

OBS-2) Eu não uso o campo "company" nos meus cadastros porque minhas entregas são 100% realizadas pelos correios e nesse campo funciona o "Referências". Por essa razão é provável que no início da loja tenha sido excluído o campo "company" de algumas página de códigos e por isso pode estar ocorrendo esse aviso. Vale lembrar que a loja funciona perfeitamente em todos os campos de endereços, tanto de cadastro como de checkout apresentando esse erro acima apenas em edição ou criação do endereço na conta do cliente.

Alguém consegue saber o que pode estar ativando esse aviso de erro?
Editado pela última vez por Smagicas em 09 Jan 2017, 17:13, em um total de 1 vez.
#71655
Remova a linha 22 (e semelhantes a ela) do arquivo /home/xxxxxx/public_html/catalog/model/account/address.php
#71664
Eu tentei valdeir2000, mas qualquer alteração nessa página aumenta os avisos de erros na loja, inclusive nos checkout começa a aperecer o erro, o trecho que você mencionou é este abaixo:
Código: Selecionar todos
<?php
class ModelAccountAddress extends Model {
	public function addAddress($data) {
		$this->event->trigger('pre.customer.add.address', $data);

		$this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$this->customer->getId() . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', city = '" . $this->db->escape($data['city']) . "', zone_id = '" . (int)$data['zone_id'] . "', country_id = '" . (int)$data['country_id'] . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? serialize($data['custom_field']) : '') . "'");

		$address_id = $this->db->getLastId();

		if (!empty($data['default'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
		}

		$this->event->trigger('post.customer.add.address', $address_id);

		return $address_id;
	}

	public function editAddress($address_id, $data) {
		$this->event->trigger('pre.customer.edit.address', $data);

		$this->db->query("UPDATE " . DB_PREFIX . "address SET firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', city = '" . $this->db->escape($data['city']) . "', zone_id = '" . (int)$data['zone_id'] . "', country_id = '" . (int)$data['country_id'] . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? serialize($data['custom_field']) : '') . "' WHERE address_id  = '" . (int)$address_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");

		if (!empty($data['default'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
		}

		$this->event->trigger('post.customer.edit.address', $address_id);
	}

	public function deleteAddress($address_id) {
		$this->event->trigger('pre.customer.delete.address', $address_id);

		$this->db->query("DELETE FROM " . DB_PREFIX . "address WHERE address_id = '" . (int)$address_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");

		$this->event->trigger('post.customer.delete.address', $address_id);
	}
#71668
Agora que prestei atenção que é o model e não o controller, desculpe-me. Vamos lá.

Adicione o código abaixo
Código: Selecionar todos
$data["company"] = "";
embaixo de
Código: Selecionar todos
public function addAddress($data) {
e
Código: Selecionar todos
public function editAddress($address_id, $data) {
Editado pela última vez por valdeir2000 em 09 Jan 2017, 17:25, em um total de 1 vez.