Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v1.x.
#59956
Bom dia galera, estou procurando no meu tema onde fica o e-mail de atualização de status. Poís está sendo usado aquele bem simples que está como padrão mesmo e quero estar fazendo um bem apresentável...

Desde já agradeço e me coloco a disposição.

Obrigado!!
Avatar do usuário
Por reds
Mensagens Especiais Curtidas
#59960
guicampos77 escreveu:Bom dia galera, estou procurando no meu tema onde fica o e-mail de atualização de status. Poís está sendo usado aquele bem simples que está como padrão mesmo e quero estar fazendo um bem apresentável...

Desde já agradeço e me coloco a disposição.

Obrigado!!
Se entendi corretamente a pergunta, segue o caminho ai "\admin\view\template\sale", então é so editar os templates a gosto. :geek:
Avatar do usuário
Por Raff
#59998
Acho que não é isso que ele precisa. Eu tenho a mesma dúvida.

Quando o histórico de um pedido de "Aguardando Pagamento" para "Aprovado" por exemplo, temos a opção de notificar o cliente por e-mail. O que desejamos é alterar os estilos desse e-mail que o cliente recebe.

Obrigado.
#69191
Olá, também estou querendo reescrever os códigos do opencart para poder atualizar esse comportamento, gostaria de saber se alguem pode me dizer onde fica o arquivo que envia o email conforme o status em que ele se encontra no decorrer do processo de compra, porque queremos desativar o envio para o administrador da loja e enviar apenas quando o pagamento for considerado "pago".
Avatar do usuário
Por reds
Mensagens Especiais Curtidas
#69194
Ola, o caminho para editar e/ou alterar os emails da loja:
catalog\view\theme\default\template\mail

Cada arquivo .tpl ai representa o/os emails de cada função.

:ugeek:
#69195
Legal, eu vi o arquivo mail.tpl e notei que ele apenas é um layout, ali não possível tomar nenhuma decisão no código, gostaria de saber qual arquivo posso trabalhar para que não envie email quando o status de pagamento for igual a "Aguardando Pagamento" no caso.
Olha estou olhando a pasta:

/home/passarin/public_html/oc/vqmod/vqcache/

Acredito que seja um dos arquivos daqui, estou lendo o codigo atualmente:
/home/passarin/public_html/oc/vqmod/vqcache/vq2-catalog_model_checkout_order.php
#69197
Olha gente espero que ajude vocês, realmente é aquele arquivo mesmo no meu caso resolveu, minha loja eh opencart 1.5.6.3, eu uso template lexus_superstore, o gateway de pagamento em uso hoje são 2, cielo e pagseguro.

Codigo:
Código: Selecionar todos
<?php

 class ModelCheckoutOrder extends Model {

  public $cpf;
  public $rg;
  public $ide;
  public $celular;

  public function getCPF() {
   $consulta = $this->db->query('SELECT a.tax_id, a.company_id, c.fax FROM `address` a INNER JOIN `order` b ON a.customer_id=b.customer_id INNER JOIN `customer` c ON c.customer_id=a.customer_id WHERE b.order_id='.$this->ide.' LIMIT 1;');
   $this->cpf     = $consulta->row['tax_id'];
   $this->rg      = $consulta->row['company_id'];
   $this->celular = $consulta->row['fax'];
  }

  public function addOrder($data) {

   if($this->config->get('fields_register_brazil_status')) {
    $this->db->query("INSERT INTO `".DB_PREFIX."order` SET invoice_prefix = '".$this->db->escape($data['invoice_prefix'])."', store_id = '".(int) $data['store_id']."', store_name = '".$this->db->escape($data['store_name'])."', store_url = '".$this->db->escape($data['store_url'])."', customer_id = '".(int) $data['customer_id']."', customer_group_id = '".(int) $data['customer_group_id']."', firstname = '".$this->db->escape($data['firstname'])."', lastname = '".$this->db->escape($data['lastname'])."', email = '".$this->db->escape($data['email'])."', telephone = '".$this->db->escape($data['telephone'])."', fax = '".$this->db->escape($data['fax'])."', cpf = '".$this->db->escape($data['cpf'])."', cnpj = '".$this->db->escape($data['cnpj'])."', rg = '".$this->db->escape($data['rg'])."', razao_social = '".$this->db->escape($data['razao_social'])."', inscricao_estadual = '".$this->db->escape($data['inscricao_estadual'])."', data_nascimento = '".$this->db->escape($data['data_nascimento'])."', sexo = '".$this->db->escape($data['sexo'])."', payment_apelido = '".$this->db->escape($data['payment_apelido'])."', payment_firstname = '".$this->db->escape($data['payment_firstname'])."', payment_lastname = '".$this->db->escape($data['payment_lastname'])."', payment_company = '".$this->db->escape($data['payment_company'])."', payment_company_id = '".$this->db->escape($data['payment_company_id'])."', payment_tax_id = '".$this->db->escape($data['payment_tax_id'])."', payment_address_1 = '".$this->db->escape($data['payment_address_1'])."', payment_numero = '".$this->db->escape($data['payment_numero'])."', payment_address_2 = '".$this->db->escape($data['payment_address_2'])."', payment_complemento = '".$this->db->escape($data['payment_complemento'])."', payment_city = '".$this->db->escape($data['payment_city'])."', payment_postcode = '".$this->db->escape($data['payment_postcode'])."', payment_country = '".$this->db->escape($data['payment_country'])."', payment_country_id = '".(int) $data['payment_country_id']."', payment_zone = '".$this->db->escape($data['payment_zone'])."', payment_zone_id = '".(int) $data['payment_zone_id']."', payment_address_format = '".$this->db->escape($data['payment_address_format'])."', payment_method = '".$this->db->escape($data['payment_method'])."', payment_code = '".$this->db->escape($data['payment_code'])."', shipping_apelido = '".$this->db->escape($data['shipping_apelido'])."', shipping_firstname = '".$this->db->escape($data['shipping_firstname'])."', shipping_lastname = '".$this->db->escape($data['shipping_lastname'])."', shipping_company = '".$this->db->escape($data['shipping_company'])."', shipping_address_1 = '".$this->db->escape($data['shipping_address_1'])."', shipping_numero = '".$this->db->escape($data['shipping_numero'])."', shipping_address_2 = '".$this->db->escape($data['shipping_address_2'])."', shipping_complemento = '".$this->db->escape($data['shipping_complemento'])."', shipping_city = '".$this->db->escape($data['shipping_city'])."', shipping_postcode = '".$this->db->escape($data['shipping_postcode'])."', shipping_country = '".$this->db->escape($data['shipping_country'])."', shipping_country_id = '".(int) $data['shipping_country_id']."', shipping_zone = '".$this->db->escape($data['shipping_zone'])."', shipping_zone_id = '".(int) $data['shipping_zone_id']."', shipping_address_format = '".$this->db->escape($data['shipping_address_format'])."', shipping_method = '".$this->db->escape($data['shipping_method'])."', shipping_code = '".$this->db->escape($data['shipping_code'])."', comment = '".$this->db->escape($data['comment'])."', total = '".(float) $data['total']."', affiliate_id = '".(int) $data['affiliate_id']."', commission = '".(float) $data['commission']."', language_id = '".(int) $data['language_id']."', currency_id = '".(int) $data['currency_id']."', currency_code = '".$this->db->escape($data['currency_code'])."', currency_value = '".(float) $data['currency_value']."', ip = '".$this->db->escape($data['ip'])."', forwarded_ip = '".$this->db->escape($data['forwarded_ip'])."', user_agent = '".$this->db->escape($data['user_agent'])."', accept_language = '".$this->db->escape($data['accept_language'])."', date_added = NOW(), date_modified = NOW()");
   } else {
    $this->db->query("INSERT INTO `".DB_PREFIX."order` SET invoice_prefix = '".$this->db->escape($data['invoice_prefix'])."', store_id = '".(int) $data['store_id']."', store_name = '".$this->db->escape($data['store_name'])."', store_url = '".$this->db->escape($data['store_url'])."', customer_id = '".(int) $data['customer_id']."', customer_group_id = '".(int) $data['customer_group_id']."', firstname = '".$this->db->escape($data['firstname'])."', lastname = '".$this->db->escape($data['lastname'])."', email = '".$this->db->escape($data['email'])."', telephone = '".$this->db->escape($data['telephone'])."', fax = '".$this->db->escape($data['fax'])."', payment_firstname = '".$this->db->escape($data['payment_firstname'])."', payment_lastname = '".$this->db->escape($data['payment_lastname'])."', payment_company = '".$this->db->escape($data['payment_company'])."', payment_company_id = '".$this->db->escape($data['payment_company_id'])."', payment_tax_id = '".$this->db->escape($data['payment_tax_id'])."', payment_address_1 = '".$this->db->escape($data['payment_address_1'])."', payment_address_2 = '".$this->db->escape($data['payment_address_2'])."', payment_city = '".$this->db->escape($data['payment_city'])."', payment_postcode = '".$this->db->escape($data['payment_postcode'])."', payment_country = '".$this->db->escape($data['payment_country'])."', payment_country_id = '".(int) $data['payment_country_id']."', payment_zone = '".$this->db->escape($data['payment_zone'])."', payment_zone_id = '".(int) $data['payment_zone_id']."', payment_address_format = '".$this->db->escape($data['payment_address_format'])."', payment_method = '".$this->db->escape($data['payment_method'])."', payment_code = '".$this->db->escape($data['payment_code'])."', shipping_firstname = '".$this->db->escape($data['shipping_firstname'])."', shipping_lastname = '".$this->db->escape($data['shipping_lastname'])."', shipping_company = '".$this->db->escape($data['shipping_company'])."', shipping_address_1 = '".$this->db->escape($data['shipping_address_1'])."', shipping_address_2 = '".$this->db->escape($data['shipping_address_2'])."', shipping_city = '".$this->db->escape($data['shipping_city'])."', shipping_postcode = '".$this->db->escape($data['shipping_postcode'])."', shipping_country = '".$this->db->escape($data['shipping_country'])."', shipping_country_id = '".(int) $data['shipping_country_id']."', shipping_zone = '".$this->db->escape($data['shipping_zone'])."', shipping_zone_id = '".(int) $data['shipping_zone_id']."', shipping_address_format = '".$this->db->escape($data['shipping_address_format'])."', shipping_method = '".$this->db->escape($data['shipping_method'])."', shipping_code = '".$this->db->escape($data['shipping_code'])."', comment = '".$this->db->escape($data['comment'])."', total = '".(float) $data['total']."', affiliate_id = '".(int) $data['affiliate_id']."', commission = '".(float) $data['commission']."', language_id = '".(int) $data['language_id']."', currency_id = '".(int) $data['currency_id']."', currency_code = '".$this->db->escape($data['currency_code'])."', currency_value = '".(float) $data['currency_value']."', ip = '".$this->db->escape($data['ip'])."', forwarded_ip = '".$this->db->escape($data['forwarded_ip'])."', user_agent = '".$this->db->escape($data['user_agent'])."', accept_language = '".$this->db->escape($data['accept_language'])."', date_added = NOW(), date_modified = NOW()");
   }


   $order_id = $this->db->getLastId();
   $this->ide = $order_id;

   foreach($data['products'] as $product) {
    $this->db->query("INSERT INTO ".DB_PREFIX."order_product SET order_id = '".(int) $order_id."', product_id = '".(int) $product['product_id']."', name = '".$this->db->escape($product['name'])."', model = '".$this->db->escape($product['model'])."', quantity = '".(int) $product['quantity']."', price = '".(float) $product['price']."', total = '".(float) $product['total']."', tax = '".(float) $product['tax']."', reward = '".(int) $product['reward']."'");

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

    foreach($product['option'] as $option) {
     $this->db->query("INSERT INTO ".DB_PREFIX."order_option SET order_id = '".(int) $order_id."', order_product_id = '".(int) $order_product_id."', product_option_id = '".(int) $option['product_option_id']."', product_option_value_id = '".(int) $option['product_option_value_id']."', name = '".$this->db->escape($option['name'])."', `value` = '".$this->db->escape($option['value'])."', `type` = '".$this->db->escape($option['type'])."'");
    }

    foreach($product['download'] as $download) {
     $this->db->query("INSERT INTO ".DB_PREFIX."order_download SET order_id = '".(int) $order_id."', order_product_id = '".(int) $order_product_id."', name = '".$this->db->escape($download['name'])."', filename = '".$this->db->escape($download['filename'])."', mask = '".$this->db->escape($download['mask'])."', remaining = '".(int) ($download['remaining'] * $product['quantity'])."'");
    }
   }

   foreach($data['vouchers'] as $voucher) {
    $this->db->query("INSERT INTO ".DB_PREFIX."order_voucher SET order_id = '".(int) $order_id."', description = '".$this->db->escape($voucher['description'])."', code = '".$this->db->escape($voucher['code'])."', from_name = '".$this->db->escape($voucher['from_name'])."', from_email = '".$this->db->escape($voucher['from_email'])."', to_name = '".$this->db->escape($voucher['to_name'])."', to_email = '".$this->db->escape($voucher['to_email'])."', voucher_theme_id = '".(int) $voucher['voucher_theme_id']."', message = '".$this->db->escape($voucher['message'])."', amount = '".(float) $voucher['amount']."'");
   }

   foreach($data['totals'] as $total) {
    $this->db->query("INSERT INTO ".DB_PREFIX."order_total SET order_id = '".(int) $order_id."', code = '".$this->db->escape($total['code'])."', title = '".$this->db->escape($total['title'])."', text = '".$this->db->escape($total['text'])."', `value` = '".(float) $total['value']."', sort_order = '".(int) $total['sort_order']."'");
   }

   return $order_id;
  }

  public function getOrder($order_id) {
   $order_query = $this->db->query("SELECT *, (SELECT os.name FROM `".DB_PREFIX."order_status` os WHERE os.order_status_id = o.order_status_id AND os.language_id = o.language_id) AS order_status FROM `".DB_PREFIX."order` o WHERE o.order_id = '".(int) $order_id."'");

   if($order_query->num_rows) {
    $country_query = $this->db->query("SELECT * FROM `".DB_PREFIX."country` WHERE country_id = '".(int) $order_query->row['payment_country_id']."'");

    if($country_query->num_rows) {
     $payment_iso_code_2 = $country_query->row['iso_code_2'];
     $payment_iso_code_3 = $country_query->row['iso_code_3'];
    } else {
     $payment_iso_code_2 = '';
     $payment_iso_code_3 = '';
    }

    $zone_query = $this->db->query("SELECT * FROM `".DB_PREFIX."zone` WHERE zone_id = '".(int) $order_query->row['payment_zone_id']."'");

    if($zone_query->num_rows) {
     $payment_zone_code = $zone_query->row['code'];
    } else {
     $payment_zone_code = '';
    }

    $country_query = $this->db->query("SELECT * FROM `".DB_PREFIX."country` WHERE country_id = '".(int) $order_query->row['shipping_country_id']."'");

    if($country_query->num_rows) {
     $shipping_iso_code_2 = $country_query->row['iso_code_2'];
     $shipping_iso_code_3 = $country_query->row['iso_code_3'];
    } else {
     $shipping_iso_code_2 = '';
     $shipping_iso_code_3 = '';
    }

    $zone_query = $this->db->query("SELECT * FROM `".DB_PREFIX."zone` WHERE zone_id = '".(int) $order_query->row['shipping_zone_id']."'");

    if($zone_query->num_rows) {
     $shipping_zone_code = $zone_query->row['code'];
    } else {
     $shipping_zone_code = '';
    }

    $this->load->model('localisation/language');

    $language_info = $this->model_localisation_language->getLanguage($order_query->row['language_id']);

    if($language_info) {
     $language_code = $language_info['code'];
     $language_filename = $language_info['filename'];
     $language_directory = $language_info['directory'];
    } else {
     $language_code = '';
     $language_filename = '';
     $language_directory = '';
    }


    $dataparts = explode('-', $order_query->row['data_nascimento']);

    return array(
     'order_id'=>$order_query->row['order_id'],
     'invoice_no'=>$order_query->row['invoice_no'],
     'invoice_prefix'=>$order_query->row['invoice_prefix'],
     'store_id'=>$order_query->row['store_id'],
     'store_name'=>$order_query->row['store_name'],
     'store_url'=>$order_query->row['store_url'],
     'customer_id'=>$order_query->row['customer_id'],
     'firstname'=>$order_query->row['firstname'],
     'lastname'=>$order_query->row['lastname'],
     'telephone'=>$order_query->row['telephone'],
     'fax'=>$order_query->row['fax'],
     'data_nascimento'=>($this->config->get('fields_register_brazil_status')) ? $dataparts[1].'/'.$dataparts[0].'/'.$dataparts[2] : '',
     'sexo'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['sexo'] : '',
     'cpf'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['cpf'] : '',
     'rg'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['rg'] : '',
     'cnpj'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['cnpj'] : '',
     'razao_social'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['razao_social'] : '',
     'inscricao_estadual'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['inscricao_estadual'] : '',
     'email'=>$order_query->row['email'],
     'payment_apelido'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['payment_apelido'] : '',
     'payment_numero'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['payment_numero'] : '',
     'payment_complemento'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['payment_complemento'] : '',
     'payment_firstname'=>$order_query->row['payment_firstname'],
     'payment_lastname'=>$order_query->row['payment_lastname'],
     'payment_company'=>$order_query->row['payment_company'],
     'payment_company_id'=>$order_query->row['payment_company_id'],
     'payment_tax_id'=>$order_query->row['payment_tax_id'],
     'payment_address_1'=>$order_query->row['payment_address_1'],
     'payment_address_2'=>$order_query->row['payment_address_2'],
     'payment_postcode'=>$order_query->row['payment_postcode'],
     'payment_city'=>$order_query->row['payment_city'],
     'payment_zone_id'=>$order_query->row['payment_zone_id'],
     'payment_zone'=>$order_query->row['payment_zone'],
     'payment_zone_code'=>$payment_zone_code,
     'payment_country_id'=>$order_query->row['payment_country_id'],
     'payment_country'=>$order_query->row['payment_country'],
     'payment_iso_code_2'=>$payment_iso_code_2,
     'payment_iso_code_3'=>$payment_iso_code_3,
     'payment_address_format'=>$order_query->row['payment_address_format'],
     'payment_method'=>$order_query->row['payment_method'],
     'payment_code'=>$order_query->row['payment_code'],
     'shipping_apelido'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['shipping_apelido'] : '',
     'shipping_numero'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['shipping_numero'] : '',
     'shipping_complemento'=>($this->config->get('fields_register_brazil_status')) ? $order_query->row['shipping_complemento'] : '',
     'shipping_firstname'=>$order_query->row['shipping_firstname'],
     'shipping_lastname'=>$order_query->row['shipping_lastname'],
     'shipping_company'=>$order_query->row['shipping_company'],
     'shipping_address_1'=>$order_query->row['shipping_address_1'],
     'shipping_address_2'=>$order_query->row['shipping_address_2'],
     'shipping_postcode'=>$order_query->row['shipping_postcode'],
     'shipping_city'=>$order_query->row['shipping_city'],
     'shipping_zone_id'=>$order_query->row['shipping_zone_id'],
     'shipping_zone'=>$order_query->row['shipping_zone'],
     'shipping_zone_code'=>$shipping_zone_code,
     'shipping_country_id'=>$order_query->row['shipping_country_id'],
     'shipping_country'=>$order_query->row['shipping_country'],
     'shipping_iso_code_2'=>$shipping_iso_code_2,
     'shipping_iso_code_3'=>$shipping_iso_code_3,
     'shipping_address_format'=>$order_query->row['shipping_address_format'],
     'shipping_method'=>$order_query->row['shipping_method'],
     'shipping_code'=>$order_query->row['shipping_code'],
     'comment'=>$order_query->row['comment'],
     'total'=>$order_query->row['total'],
     'order_status_id'=>$order_query->row['order_status_id'],
     'order_status'=>$order_query->row['order_status'],
     'language_id'=>$order_query->row['language_id'],
     'language_code'=>$language_code,
     'language_filename'=>$language_filename,
     'language_directory'=>$language_directory,
     'currency_id'=>$order_query->row['currency_id'],
     'currency_code'=>$order_query->row['currency_code'],
     'currency_value'=>$order_query->row['currency_value'],
     'ip'=>$order_query->row['ip'],
     'forwarded_ip'=>$order_query->row['forwarded_ip'],
     'user_agent'=>$order_query->row['user_agent'],
     'accept_language'=>$order_query->row['accept_language'],
     'date_modified'=>$order_query->row['date_modified'],
     'date_added'=>$order_query->row['date_added']
    );
   } else {
    return false;
   }
  }

  public function confirm($order_id, $order_status_id, $comment = '', $notify = false) {
   $order_info = $this->getOrder($order_id);

   if($order_info && !$order_info['order_status_id']) {
    // Fraud Detection
    if($this->config->get('config_fraud_detection')) {
     $this->load->model('checkout/fraud');

     $risk_score = $this->model_checkout_fraud->getFraudScore($order_info);

     if($risk_score > $this->config->get('config_fraud_score')) {
      $order_status_id = $this->config->get('config_fraud_status_id');
     }
    }

    // Ban IP
    $status = false;

    $this->load->model('account/customer');

    if($order_info['customer_id']) {
     $results = $this->model_account_customer->getIps($order_info['customer_id']);

     foreach($results as $result) {
      if($this->model_account_customer->isBanIp($result['ip'])) {
       $status = true;
       break;
      }
     }
    } else {
     $status = $this->model_account_customer->isBanIp($order_info['ip']);
    }

    if($status) {
     $order_status_id = $this->config->get('config_order_status_id');
    }

    $this->db->query("UPDATE `".DB_PREFIX."order` SET order_status_id = '".(int) $order_status_id."', date_modified = NOW() WHERE order_id = '".(int) $order_id."'");

    $this->db->query("INSERT INTO ".DB_PREFIX."order_history SET order_id = '".(int) $order_id."', order_status_id = '".(int) $order_status_id."', notify = '1', comment = '".$this->db->escape(($comment && $notify) ? $comment : '')."', date_added = NOW()");

    $order_product_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_product WHERE order_id = '".(int) $order_id."'");

    foreach($order_product_query->rows as $order_product) {
     $this->db->query("UPDATE ".DB_PREFIX."product SET quantity = (quantity - ".(int) $order_product['quantity'].") WHERE product_id = '".(int) $order_product['product_id']."' AND subtract = '1'");

     $order_option_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_option WHERE order_id='".(int) $order_id."' AND order_product_id = '".(int) $order_product['order_product_id']."'");

     foreach($order_option_query->rows as $option) {
      $this->db->query("UPDATE ".DB_PREFIX."product_option_value SET quantity = (quantity - ".(int) $order_product['quantity'].") WHERE product_option_value_id = '".(int) $option['product_option_value_id']."' AND subtract = '1'");
     }
    }

    if(!isset($passArray) || empty($passArray)) {
     $passArray = null;
    }
    $this->openbay->orderNew((int) $order_id);

    $this->cache->delete('product');

    // Downloads
    $order_download_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_download WHERE order_id = '".(int) $order_id."'");

    // Gift Voucher
    $this->load->model('checkout/voucher');

    $order_voucher_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_voucher WHERE order_id = '".(int) $order_id."'");

    foreach($order_voucher_query->rows as $order_voucher) {
     $voucher_id = $this->model_checkout_voucher->addVoucher($order_id, $order_voucher);

     $this->db->query("UPDATE ".DB_PREFIX."order_voucher SET voucher_id = '".(int) $voucher_id."' WHERE order_voucher_id = '".(int) $order_voucher['order_voucher_id']."'");
    }

    // Send out any gift voucher mails
    if($this->config->get('config_complete_status_id') == $order_status_id) {
     $this->model_checkout_voucher->confirm($order_id);
    }

    // Order Totals			    
    
    $order_total_query = $this->db->query("SELECT * FROM `".DB_PREFIX."order_total` WHERE order_id = '".(int) $order_id."' ORDER BY sort_order ASC");

    foreach($order_total_query->rows as $order_total) {
     $this->load->model('total/'.$order_total['code']);

     if(method_exists($this->{'model_total_'.$order_total['code']}, 'confirm')) {
      $this->{'model_total_'.$order_total['code']}->confirm($order_info, $order_total);
     }
    }

    // Send out order confirmation mail
    $language = new Language($order_info['language_directory']);
    $language->load($order_info['language_filename']);
    $language->load('mail/order');

    $order_status_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_status WHERE order_status_id='".(int) $order_status_id."' AND language_id = '".(int) $order_info['language_id']."'");

    if($order_status_query->num_rows) {
     $order_status = $order_status_query->row['name'];
    } else {
     $order_status = '';
    }

    $subject = sprintf($language->get('text_new_subject'), $order_info['store_name'], $order_id);

    // HTML Mail
    $template = new Template();

    $template->data['title'] = sprintf($language->get('text_new_subject'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'), $order_id);
    
    $this->ide = $order_id;
    $this->getCPF();
    
    $template->data['text_greeting']         = sprintf($language->get('text_new_greeting'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
    $template->data['text_link']             = $language->get('text_new_link');
    $template->data['text_download']         = $language->get('text_new_download');
    $template->data['text_order_detail']     = $language->get('text_new_order_detail');
    $template->data['text_instruction']      = $language->get('text_new_instruction');
    $template->data['text_order_id']         = $language->get('text_new_order_id');
    $template->data['text_date_added']       = $language->get('text_new_date_added');
    $template->data['text_payment_method']   = $language->get('text_new_payment_method');
    $template->data['text_shipping_method']  = $language->get('text_new_shipping_method');
    $template->data['documentos']            = $this->cpf;    
    $template->data['text_email']            = $language->get('text_new_email');
    $template->data['text_telephone']        = $language->get('text_new_telephone').' '.$this->celular;
    $template->data['text_ip']               = $language->get('text_new_ip');
    $template->data['text_payment_address']  = $language->get('text_new_payment_address');
    $template->data['text_shipping_address'] = $language->get('text_new_shipping_address');
    $template->data['text_product']  = $language->get('text_new_product');
    $template->data['text_model']    = $language->get('text_new_model');
    $template->data['text_quantity'] = $language->get('text_new_quantity');
    $template->data['text_price']    = $language->get('text_new_price');
    $template->data['text_total']    = $language->get('text_new_total');
    $template->data['text_footer']   = $language->get('text_new_footer');
    $template->data['text_powered']  = $language->get('text_new_powered');

    $template->data['logo']        = $this->config->get('config_url').'image/'.$this->config->get('config_logo');
    $template->data['store_name']  = $order_info['store_name'];
    $template->data['store_url']   = $order_info['store_url'];
    $template->data['customer_id'] = $order_info['customer_id'];
    $template->data['link']        = $order_info['store_url'].'index.php?route=account/order/info&order_id='.$order_id;

    if($order_download_query->num_rows) {
     $template->data['download'] = $order_info['store_url'].'index.php?route=account/download';
    } else {
     $template->data['download'] = '';
    }

    $template->data['order_id']        = $order_id;
    $template->data['date_added']      = date($language->get('date_format_short'), strtotime($order_info['date_added']));
    $template->data['payment_method']  = $order_info['payment_method'];
    $template->data['shipping_method'] = $order_info['shipping_method'];
    $template->data['email']           = $order_info['email'];
    $template->data['telephone']       = $order_info['telephone'];
    $template->data['ip']              = $order_info['ip'];    

    if($comment && $notify) {
     $template->data['comment'] = nl2br($comment);
    } else {
     $template->data['comment'] = '';
    }

    if($order_info['payment_address_format']) {
     $format = $order_info['payment_address_format'];
    } else {     
     if($this->config->get('fields_register_brazil_status')) {      
      $format = '{apelido}'."\n".'{firstname} {lastname} '."\n".'{company}'."\n".'{address_1}, {numero}, {complemento}'."\n"."\n".'{address_2}'."\n".'{city} {postcode}'."\n".'{zone}'."\n".'{country}';
     } else {
      $format = '{firstname} {lastname}'."\n".'{company}'."\n".'{address_1}'."\n".'{address_2}'."\n".'{city} {postcode}'."\n".'{zone}'."\n".'{country}';
     }
    }

    $find = array(
     '{apelido}',
     '{numero}',
     '{complemento}',
     '{firstname}',
     '{lastname}',
     '{company}',
     '{address_1}',
     '{address_2}',
     '{city}',
     '{postcode}',
     '{zone}',
     '{zone_code}',
     '{country}'
    );

    $replace = array(
     'apelido'=>($this->config->get('fields_register_brazil_status')) ? $order_info['payment_apelido'] : '',
     'numero'=>($this->config->get('fields_register_brazil_status')) ? $order_info['payment_numero'] : '',
     'complemento'=>($this->config->get('fields_register_brazil_status')) ? $order_info['payment_complemento'] : '',
     'firstname'=>$order_info['payment_firstname'],
     'lastname'=>$order_info['payment_lastname'],
     'company'=>$order_info['payment_company'],
     'address_1'=>$order_info['payment_address_1'],
     'address_2'=>$order_info['payment_address_2'],
     'city'=>$order_info['payment_city'],
     'postcode'=>$order_info['payment_postcode'],
     'zone'=>$order_info['payment_zone'],
     'zone_code'=>$order_info['payment_zone_code'],
     'country'=>$order_info['payment_country']
    );

    $template->data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format))));

    if($order_info['shipping_address_format']) {
     $format = $order_info['shipping_address_format'];
    } else {
     if($this->config->get('fields_register_brazil_status')) {      
      $this->ide = $order_id;
      $this->getCPF();
      $format = '{apelido}'."\n".'{firstname} {lastname} <br>CPF/CNPJ: '.$this->cpf.'<br>RG/IE: '.$this->rg."\n".'{company}'."\n".'{address_1}, {numero}, {complemento}'."\n"."\n".'{address_2}'."\n".'{city} {postcode}'."\n".'{zone}'."\n".'{country}';
     } else {
      $format = '{firstname} {lastname}'."\n".'{company}'."\n".'{address_1}'."\n".'{address_2}'."\n".'{city} {postcode}'."\n".'{zone}'."\n".'{country}';
     }
    }

    $find = array(
     '{apelido}',
     '{numero}',
     '{complemento}',
     '{firstname}',
     '{lastname}',
     '{company}',
     '{address_1}',
     '{address_2}',
     '{city}',
     '{postcode}',
     '{zone}',
     '{zone_code}',
     '{country}'
    );

    $replace = array(
     'apelido'=>($this->config->get('fields_register_brazil_status')) ? $order_info['shipping_apelido'] : '',
     'numero'=>($this->config->get('fields_register_brazil_status')) ? $order_info['shipping_numero'] : '',
     'complemento'=>($this->config->get('fields_register_brazil_status')) ? $order_info['shipping_complemento'] : '',
     'firstname'=>$order_info['shipping_firstname'],
     'lastname'=>$order_info['shipping_lastname'],
     'company'=>$order_info['shipping_company'],
     'address_1'=>$order_info['shipping_address_1'],
     'address_2'=>$order_info['shipping_address_2'],
     'city'=>$order_info['shipping_city'],
     'postcode'=>$order_info['shipping_postcode'],
     'zone'=>$order_info['shipping_zone'],
     'zone_code'=>$order_info['shipping_zone_code'],
     'country'=>$order_info['shipping_country']
    );

    $template->data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format))));

    // Products
    $template->data['products'] = array();

    foreach($order_product_query->rows as $product) {
     $option_data = array();

     $order_option_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_option WHERE order_id='".(int) $order_id."' AND order_product_id = '".(int) $product['order_product_id']."'");

     foreach($order_option_query->rows as $option) {
      if($option['type'] != 'file') {
       $value = $option['value'];
      } else {
       $value = utf8_substr($option['value'], 0, utf8_strrpos($option['value'], '.'));
      }

      $option_data[] = array(
       'name'=>$option['name'],
       'value'=>(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20).'..' : $value)
      );
     }

     $template->data['products'][] = array(
      'name'=>$product['name'],
      'model'=>$product['model'],
      'option'=>$option_data,
      'quantity'=>$product['quantity'],
      'price'=>$this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
      'total'=>$this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value'])
     );
    }

    // Vouchers
    $template->data['vouchers'] = array();

    foreach($order_voucher_query->rows as $voucher) {
     $template->data['vouchers'][] = array(
      'description'=>$voucher['description'],
      'amount'=>$this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']),
     );
    }

    $template->data['totals'] = $order_total_query->rows;

    if(file_exists(DIR_TEMPLATE.$this->config->get('config_template').'/template/mail/order.tpl')) {
     $html = $template->fetch($this->config->get('config_template').'/template/mail/order.tpl');
    } else {
     $html = $template->fetch('default/template/mail/order.tpl');
    }

    // Can not send confirmation emails for CBA orders as email is unknown
    $this->load->model('payment/amazon_checkout');
    if(!$this->model_payment_amazon_checkout->isAmazonOrder($order_info['order_id'])) {
     // Text Mail
     $text = sprintf($language->get('text_new_greeting'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'))."\n\n";
     $text .= $language->get('text_new_order_id').' '.$order_id."\n";
     $text .= $language->get('text_new_date_added').' '.date($language->get('date_format_short'), strtotime($order_info['date_added']))."\n";
     $text .= $language->get('text_new_order_status').' '.$order_status."\n\n";

     if($comment && $notify) {
      $text .= $language->get('text_new_instruction')."\n\n";
      $text .= $comment."\n\n";
     }

     // Products
     $text .= $language->get('text_new_products')."\n";

     foreach($order_product_query->rows as $product) {
      $text .= $product['quantity'].'x '.$product['name'].' ('.$product['model'].') '.html_entity_decode($this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8')."\n";

      $order_option_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_option WHERE order_id = '".(int) $order_id."' AND order_product_id = '".$product['order_product_id']."'");

      foreach($order_option_query->rows as $option) {
       $text .= chr(9).'-'.$option['name'].' '.(utf8_strlen($option['value']) > 20 ? utf8_substr($option['value'], 0, 20).'..' : $option['value'])."\n";
      }
     }

     foreach($order_voucher_query->rows as $voucher) {
      $text .= '1x '.$voucher['description'].' '.$this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']);
     }

     $text .= "\n";

     $text .= $language->get('text_new_order_total')."\n";

     foreach($order_total_query->rows as $total) {
      $text .= $total['title'].': '.html_entity_decode($total['text'], ENT_NOQUOTES, 'UTF-8')."\n";
     }

     $text .= "\n";

     if($order_info['customer_id']) {
      $text .= $language->get('text_new_link')."\n";
      $text .= $order_info['store_url'].'index.php?route=account/order/info&order_id='.$order_id."\n\n";
     }

     if($order_download_query->num_rows) {
      $text .= $language->get('text_new_download')."\n";
      $text .= $order_info['store_url'].'index.php?route=account/download'."\n\n";
     }

     // Comment
     if($order_info['comment']) {
      $text .= $language->get('text_new_comment')."\n\n";
      $text .= $order_info['comment']."\n\n";
     }

     $text .= $language->get('text_new_footer')."\n\n";

     $mail = new Mail();
     $mail->protocol  = $this->config->get('config_mail_protocol');
     $mail->parameter = $this->config->get('config_mail_parameter');
     $mail->hostname  = $this->config->get('config_smtp_host');
     $mail->username  = $this->config->get('config_smtp_username');
     $mail->password  = $this->config->get('config_smtp_password');
     $mail->port = $this->config->get('config_smtp_port');
     $mail->timeout = $this->config->get('config_smtp_timeout');
     $mail->setTo($order_info['email']);
     $mail->setFrom($this->config->get('config_email'));
     $mail->setSender($order_info['store_name']);
     $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
     $mail->setHtml($html);
     $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
     $mail->send();
     $mail->setTo("email_do_seu_cliente_aqui@dominio_do_serumaninho.com.br");          
     $mail->send();
     $mail->setTo("outro_email_do_seu_cliente_aqui@dominio_do_serumaninho.com.br");          
     $mail->send();
    }

    // Admin Alert Mail
    if($this->config->get('config_alert_mail')) {
     $subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id);

     // Text 
     $text  = $language->get('text_new_received')."\n\n";
     $text .= $language->get('text_new_order_id').' '.$order_id."\n";
     $text .= $language->get('text_new_date_added').' '.date($language->get('date_format_short'), strtotime($order_info['date_added']))."\n";
     $text .= $language->get('text_new_order_status').' '.$order_status."\n\n";
     $text .= $language->get('text_new_products')."\n";

     foreach($order_product_query->rows as $product) {
      $text .= $product['quantity'].'x '.$product['name'].' ('.$product['model'].') '.html_entity_decode($this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8')."\n";

      $order_option_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_option WHERE order_id = '".(int) $order_id."' AND order_product_id = '".$product['order_product_id']."'");

      foreach($order_option_query->rows as $option) {
       if($option['type'] != 'file') {
        $value = $option['value'];
       } else {
        $value = utf8_substr($option['value'], 0, utf8_strrpos($option['value'], '.'));
       }
       $text .= chr(9).'-'.$option['name'].' '.(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20).'..' : $value)."\n";
      }
     }

     foreach($order_voucher_query->rows as $voucher) {
      $text .= '1x '.$voucher['description'].' '.$this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']);
     }

     $text .= "\n";

     $text .= $language->get('text_new_order_total')."\n";

     foreach($order_total_query->rows as $total) {
      $text .= $total['title'].': '.html_entity_decode($total['text'], ENT_NOQUOTES, 'UTF-8')."\n";
     }

     $text .= "\n";

     if($order_info['comment']) {
      $text .= $language->get('text_new_comment')."\n\n";
      $text .= $order_info['comment']."\n\n";
     }

     $mail = new Mail();
     $mail->protocol = $this->config->get('config_mail_protocol');
     $mail->parameter = $this->config->get('config_mail_parameter');
     $mail->hostname = $this->config->get('config_smtp_host');
     $mail->username = $this->config->get('config_smtp_username');
     $mail->password = $this->config->get('config_smtp_password');
     $mail->port = $this->config->get('config_smtp_port');
     $mail->timeout = $this->config->get('config_smtp_timeout');
     $mail->setTo($this->config->get('config_email'));
     $mail->setFrom($this->config->get('config_email'));
     $mail->setSender($order_info['store_name']);
     $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
     $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
     $mail->send();     

     // Send to additional alert emails
     $emails = explode(',', $this->config->get('config_alert_emails'));

     foreach($emails as $email) {
      if($email && preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $email)) {
       $mail->setTo($email);
       $mail->send();
      }
     }     
    }
   }
  }

  public function update($order_id, $order_status_id, $comment = '', $notify = false) {
   $order_info = $this->getOrder($order_id);

   if($order_info && $order_info['order_status_id']) {
    // Fraud Detection
    if($this->config->get('config_fraud_detection')) {
     $this->load->model('checkout/fraud');
     $risk_score = $this->model_checkout_fraud->getFraudScore($order_info);
     if($risk_score > $this->config->get('config_fraud_score')) {
      $order_status_id = $this->config->get('config_fraud_status_id');
     }
    }

    // Ban IP
    $status = false;

    $this->load->model('account/customer');

    if($order_info['customer_id']) {

     $results = $this->model_account_customer->getIps($order_info['customer_id']);

     foreach($results as $result) {
      if($this->model_account_customer->isBanIp($result['ip'])) {
       $status = true;
       break;
      }
     }
    } else {
     $status = $this->model_account_customer->isBanIp($order_info['ip']);
    }

    if($status) {
     $order_status_id = $this->config->get('config_order_status_id');
    }

    $this->db->query("UPDATE `".DB_PREFIX."order` SET order_status_id = '".(int) $order_status_id."', date_modified = NOW() WHERE order_id = '".(int) $order_id."'");

    $this->db->query("INSERT INTO ".DB_PREFIX."order_history SET order_id = '".(int) $order_id."', order_status_id = '".(int) $order_status_id."', notify = '".(int) $notify."', comment = '".$this->db->escape($comment)."', date_added = NOW()");

    // Send out any gift voucher mails
    if($this->config->get('config_complete_status_id') == $order_status_id) {
     $this->load->model('checkout/voucher');

     $this->model_checkout_voucher->confirm($order_id);
    }

    if($notify) {
     $language = new Language($order_info['language_directory']);
     $language->load($order_info['language_filename']);
     $language->load('mail/order');

     $subject = sprintf($language->get('text_update_subject'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'), $order_id);

     $message = $language->get('text_update_order').' '.$order_id."\n";
     $message .= $language->get('text_update_date_added').' '.date($language->get('date_format_short'), strtotime($order_info['date_added']))."\n\n";

     $order_status_query = $this->db->query("SELECT * FROM ".DB_PREFIX."order_status WHERE order_status_id = '".(int) $order_status_id."' AND language_id = '".(int) $order_info['language_id']."'");

     if($order_status_query->num_rows) {
      $message .= $language->get('text_update_order_status')."\n\n";
      $message .= $order_status_query->row['name']."\n\n";
     }

     if($order_info['customer_id']) {
      $message .= $language->get('text_update_link')."\n";
      $message .= $order_info['store_url'].'index.php?route=account/order/info&order_id='.$order_id."\n\n";
     }

     if($comment) {
      $message .= $language->get('text_update_comment')."\n\n";
      $message .= $comment."\n\n";
     }

     $message .= $language->get('text_update_footer');

     $mail = new Mail();
     $mail->protocol  = $this->config->get('config_mail_protocol');
     $mail->parameter = $this->config->get('config_mail_parameter');
     $mail->hostname  = $this->config->get('config_smtp_host');
     $mail->username  = $this->config->get('config_smtp_username');
     $mail->password  = $this->config->get('config_smtp_password');
     $mail->port      = $this->config->get('config_smtp_port');
     $mail->timeout   = $this->config->get('config_smtp_timeout');
     $mail->setTo($order_info['email']);     
     $mail->setFrom($this->config->get('config_email'));
     $mail->setSender($order_info['store_name']);
     $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
     $mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));
     $mail->send();
     [color=#FF0000]
    // AQUI FIZ A ALTERACAO DESEJADA PELO CLIENTE ELE QUER APENAS VER OS PAGOS
    if($order_status_id == 21 || $order_status_id == 'paga' || $order_status_id == 'pago' || $order_status_id == 'Pago' || $order_status_id == 'Paga') {
      $mail->setTo("email_do_seu_cliente_aqui@dominio_do_serumaninho.com.br");          
      $mail->send();
      $mail->setTo("outro_email_do_seu_cliente_aqui@dominio_do_serumaninho.com.br");          
      $mail->send();
     }[/color]
    }
   }
  }

 }

?>
Avatar do usuário
Por reds
Mensagens Especiais Curtidas
#69199
falandes escreveu:Legal, eu vi o arquivo mail.tpl e notei que ele apenas é um layout, ali não possível tomar nenhuma decisão no código, gostaria de saber qual arquivo posso trabalhar para que não envie email quando o status de pagamento for igual a "Aguardando Pagamento" no caso.
Olha estou olhando a pasta:

/home/passarin/public_html/oc/vqmod/vqcache/

Acredito que seja um dos arquivos daqui, estou lendo o codigo atualmente:
/home/passarin/public_html/oc/vqmod/vqcache/vq2-catalog_model_checkout_order.php
Se for apenas para trocar o nome ou não disparar um email contendo a mensagem acima, apenas remova a mesma ou troque para outra mensagem como desejar.

Em Configurações/ Dados Auxiliares /Situação de pedidos: Mude a mensagem
Em configurações da loja na aba opções, mude o status inicial do pedido

:ugeek: