Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Campo DDD no PagSeguro


digaovr

Recommended Posts

Adicionando o campo DDD no pagseguro.

 

Adicione o código abaixo em seu banco de dados através do phpmyadmin:

 

 

ALTER TABLE customers ADD customers_ddd int(2) NOT NULL;

 

 

 

No arquivo create_account.php localize:

 

 

$lastname = tep_db_prepare_input($HTTP_POST_VARS['lastname']);

 

 

 

Logo abaixo, adicione:

 

 

$ddd = tep_db_prepare_input($HTTP_POST_VARS['ddd']);

 

 

Localize:

 

 

'customers_lastname' => $lastname,

 

 

 

Logo abaixo adicione:

 

 

'customers_ddd' => $ddd,

 

 

 

Localize:

 

 

<tr>
			<td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>
			<td class="main"><?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>
		  </tr>

 

 

 

Substitua por:

 

 

<tr>

			<td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>
			<td class="main"><?php echo tep_draw_input_field('ddd','','size="2"'); ?> - <?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>
		  </tr>

 

 

 

No arquivo account_edit.php, localize:

 

 

$lastname = tep_db_prepare_input($HTTP_POST_VARS['lastname']);

 

 

 

Logo abaixo, adicione:

 

 

$ddd = tep_db_prepare_input($HTTP_POST_VARS['ddd']);

 

 

 

Localize:

 

'customers_lastname' => $lastname,

 

Logo abaixo adicione:

 

'customers_ddd' => $ddd,

 

Localize:

 

 

$account_query = tep_db_query("select customers_gender, customers_firstname, customers_lastname, customers_dob, customers_email_address, customers_telephone, customers_fax from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customer_id . "'"); 
 $account = tep_db_fetch_array($account_query);

 

 

 

Substitua por:

 

 

$account_query = tep_db_query("select customers_gender, customers_firstname, customers_lastname, customers_cpf, customers_rg,customers_dob, customers_email_address, customers_ddd, customers_telephone, customers_fax from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customer_id . "'"); 
 $account = tep_db_fetch_array($account_query);

 

 

Localize:

 

 

<tr>
			<td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>
			<td class="main"><?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>
		  </tr>

 

 

 

Substitua por:

 

 

<tr>

			<td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>
			<td class="main"><?php echo tep_draw_input_field('ddd','','size="2"'); ?> - <?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>
		  </tr>

 

 

 

Agora no arquivo admin/customers.php, localize:

 

 

$customers_lastname = tep_db_prepare_input($HTTP_POST_VARS['customers_lastname']);

 

 

Logo abaixo, adicione:

 

 

$ddd = tep_db_prepare_input($HTTP_POST_VARS['ddd']);

 

 

Localize:

 

 

'customers_lastname' => $customers_lastname,

 

 

Abaixo adicione:

 

 

'customers_ddd' => $ddd,

 

 

Localize:

 

$customers_query = tep_db_query("select c.customers_id, c.customers_gender, c.customers_firstname, c.customers_lastname, c.customers_dob, c.customers_email_address, a.entry_company, a.entry_street_address, a.entry_suburb, a.entry_postcode, a.entry_city, a.entry_state, a.entry_zone_id, a.entry_country_id, c.customers_telephone, c.customers_fax, c.customers_newsletter, c.customers_default_address_id from " . TABLE_CUSTOMERS . " c left join " . TABLE_ADDRESS_BOOK . " a on c.customers_default_address_id = a.address_book_id where a.customers_id = c.customers_id and c.customers_id = '" . (int)$HTTP_GET_VARS['cID'] . "'");

 

 

 

Substitua por:

 

 

$customers_query = tep_db_query("select c.customers_id, c.customers_gender, c.customers_firstname, c.customers_cpf, c.customers_rg, c.customers_lastname, c.customers_dob, c.customers_email_address, a.entry_company, a.entry_street_address, a.entry_suburb, a.entry_postcode, a.entry_city, a.entry_state, a.entry_zone_id, a.entry_country_id, c.customers_ddd, c.customers_telephone, c.customers_fax, c.customers_newsletter, c.customers_default_address_id from " . TABLE_CUSTOMERS . " c left join " . TABLE_ADDRESS_BOOK . " a on c.customers_default_address_id = a.address_book_id where a.customers_id = c.customers_id and c.customers_id = '" . (int)$HTTP_GET_VARS['cID'] . "'");

 

 

Localize:

 

 

<?php
 if ($error == true) {
if ($entry_telephone_error == true) {
  echo tep_draw_input_field('customers_telephone', $cInfo->customers_telephone, 'maxlength="32"') . ' ' . ENTRY_TELEPHONE_NUMBER_ERROR;
} else {
  echo $cInfo->customers_telephone . tep_draw_hidden_field('customers_telephone');
}
 } else {
echo tep_draw_input_field('customers_telephone', $cInfo->customers_telephone, 'maxlength="32"', true);
 }
?>

 

 

Substitua por:

 

 

<?php

echo tep_draw_input_field('customers_ddd', $cInfo->customers_ddd, 'maxlength="2" size="2"', false) . ' - ';
 if ($error == true) {
if ($entry_telephone_error == true) {
  echo tep_draw_input_field('customers_telephone', $cInfo->customers_telephone, 'maxlength="32"') . ' ' . ENTRY_TELEPHONE_NUMBER_ERROR;
} else {
  echo $cInfo->customers_telephone . tep_draw_hidden_field('customers_telephone');
}
 } else {
echo tep_draw_input_field('customers_telephone', $cInfo->customers_telephone, 'maxlength="32"', true);
 }
?>

 

 

 

Abra o arquivo checkout_process.php e encontre:

 

 

'customers_telephone' => $order->customer['telephone'],

 

 

Abaixo, adicione:

 

 

'ddd' => $order->customer['ddd'],

 

 

Abra o arquivo includes/classes/order.php e ache:

 

 

$order_query = tep_db_query("select customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_telephone, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_expires, currency, currency_value, date_purchased, orders_status, last_modified from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");

 

 

Substitua por:

 

$order_query = tep_db_query("select customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_ddd, customers_telephone, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_expires, currency, currency_value, date_purchased, orders_status, last_modified from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");

 

Encontre:

 

'telephone' => $order['customers_telephone'],

 

Abaixo, adicione:

 

'customers_ddd' => $order['customers_ddd'],

 

Encontre:

 

$customer_address_query = tep_db_query("select c.customers_firstname, c.customers_lastname, c.customers_telephone, c.customers_email_address, ab.entry_company, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, z.zone_name, co.countries_id, co.countries_name, co.countries_iso_code_2, co.countries_iso_code_3, co.address_format_id, ab.entry_state from " . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) left join " . TABLE_COUNTRIES . " co on (ab.entry_country_id = co.countries_id) where c.customers_id = '" . (int)$customer_id . "' and ab.customers_id = '" . (int)$customer_id . "' and c.customers_default_address_id = ab.address_book_id");

 

Mude para:

 

$customer_address_query = tep_db_query("select c.customers_firstname, c.customers_lastname, c.customers_ddd, c.customers_telephone, c.customers_email_address, ab.entry_company, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, z.zone_name, co.countries_id, co.countries_name, co.countries_iso_code_2, co.countries_iso_code_3, co.address_format_id, ab.entry_state from " . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) left join " . TABLE_COUNTRIES . " co on (ab.entry_country_id = co.countries_id) where c.customers_id = '" . (int)$customer_id . "' and ab.customers_id = '" . (int)$customer_id . "' and c.customers_default_address_id = ab.address_book_id");

 

Encontre:

 

'telephone' => $customer_address['customers_telephone'],

 

Abaixo, adicione:

 

'ddd' => $customer_address['customers_ddd'],

 

Abra o arquivo pagseguro.php e ache:

 

Encontre:

 

$cust_telephone2 = eregi_replace ("[^0-9]", "", $order->customer['telephone']);

 

Mude para:

 

$cust_telephone2 = eregi_replace ("[^0-9]", "", $order->customer['ddd']);

 

 

Rode e veja se está tudo funcionando.

Link to comment
Share on other sites

No admin o campo DDD aparece, mas quando se eu mudar para outro numero e mandar atualizar aparece um 0 !!

 

Outra, no account_edit não aparece nada. Nem o DDD nem telefone. Eu insiro os dados e mando Continuar, qdo eu volto o campo contiuna em branco! Tanto o ddd como o do telefone.

 

Segui as intrunções como você postou.

 

O que pode ser este erro???

Link to comment
Share on other sites

No admin o campo DDD aparece, mas quando se eu mudar para outro numero e mandar atualizar aparece um 0 !!

 

Outra, no account_edit não aparece nada. Nem o DDD nem telefone. Eu insiro os dados e mando Continuar, qdo eu volto o campo contiuna em branco! Tanto o ddd como o do telefone.

 

Segui as intrunções como você postou.

 

O que pode ser este erro???

 

Pra dar um jeito no account_edit basta fazer isso:

 

Localize:

 

<tr>

 

<td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>

<td class="main"><?php echo tep_draw_input_field('ddd','','size="2"'); ?> - <?php echo tep_draw_input_field('telephone') . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>

</tr>

 

Substitua por:

 

<tr>

 

<td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>

<td class="main"><?php echo tep_draw_input_field('ddd', $account['customers_ddd'],'size="2"'); ?> - <?php echo tep_draw_input_field('telephone', $account['customers_telephone']) . ' ' . (tep_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_TELEPHONE_NUMBER_TEXT . '</span>': ''); ?></td>

</tr>

 

veja se deu certo

 

abraço

Edited by zepirimba
Link to comment
Share on other sites

Quando vou em "informações da minha conta" e quero ver meus pedidos anteriores aparece erro 1054:

 

1054 - Unknown column 'customers_ddd' in 'field list'

 

select customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_telephone, customers_ddd, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_expires, currency, currency_value, date_purchased, orders_status, last_modified from orders where orders_id = '25'

 

[TEP STOP]

 

 

Esse erro é no order.php se tirar o customers_add ai funciona mais vou desabilitar algo?

 

poderia ajudar?

Link to comment
Share on other sites

A loja ficou completa, mas fui testar no PagSeguro, o campo DDD não está sendo enviado!

 

Só tá faltando isso pra ficar 100% !

 

Vou postar o codigo do Pagseguro:

 

<?php
/********************************************************************************
***********************
*
* pagseguro.php 12/03/2006
*
* Módulo de Pagamento osCommerce 2.2 para aprovar Cartões de Crédito através do serviço pagseguro brasileiro
*
* Author: Claudio H. Imai <[email protected]>
* March, 2006
* Alterações feitaspor Valmy Gomes em 24/04/2008 - [email protected]
* Copyright (c) 2006 Creativstudios Web Solutions <[email protected]>
* Copyright (c) 2002 osCommerce
*
* Released under the GNU General Public License
* 
* versão 1.5
* Descrição:
* Adicionado um campo de status dos pedidos com pagamento aprovado.
* O módulo anterior não separava entre pagamentos em aberto ou aprovados, tendo de ser alterado manualmente
* no momento do processamento do pedido.
* Isso significava que se a loja vende produtos por download, o cliente deveria esperar a autorização manual
* do pagamento.
* Corrigida a atualização do pedido no segundo post do servidor. Agora é feito logo após o primeiro POST, porque o método anterior
* não atualizava o status do pedido se o cliente fechasse a janela antes de voltar para a loja.
* 
* em aberto: Foram criados dois novos campos para serem valores a somar no pedido, a fim de cobrir as
* taxas cobradas pelo pagseguro ao lojista. Notificar ao comprador dessa possibilidade, se o lojista optar
* pelo uso desses valores.
* 
* Atualização:
* 1. DESINSTALE o módulo anterior da loja (na administração);
* 2. sobrescreva os arquivos referentes ao módulo, via ftp;
* 3. reinstale o módulo novo;
* 4. crie um novo status de pedido para pagamentos aprovados;
* 5. Reconfigure o módulo como descrito nas instruções de instalação, tomando o cuidado de alterar o campo de "Pedidos aprovados" de acordo com sua configuração. 
*
* Em caso de dúvidas, verique nossa documentação em www.creativstudios.org ou no forum.
********************************************************************************
************************/
 class pagseguro {
var $code, $title, $description, $enabled;
// class constructor
function pagseguro() {
  global $order;
  $this->code = 'pagseguro';
  $this->title = MODULE_PAYMENT_PAGSEGURO_TEXT_TITLE;
  $this->description = MODULE_PAYMENT_PAGSEGURO_TEXT_DESCRIPTION;
  $this->sort_order = MODULE_PAYMENT_PAGSEGURO_SORT_ORDER;
  $this->enabled = ((MODULE_PAYMENT_PAGSEGURO_STATUS == 'True') ? true : false);
  if ((int)MODULE_PAYMENT_PAGSEGURO_ORDER_STATUS_ID > 0) {
	$this->order_status = MODULE_PAYMENT_PAGSEGURO_ORDER_STATUS_ID;
  }
  if (is_object($order)) $this->update_status();
// URL for transaction. In this case, the parameters are sent to a CGI, so the URL is checkout_process.php
// If the parameters were to be sent as POST variables, the URL would be different. See paypal_ipn contribution for an example.
// Claudio Mar, 18th, 2006
//	  $this->form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', true);
  $this->form_action_url = "https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx";
}
// class methods
function update_status() {
  global $order;
  if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAGSEGURO_ZONE > 0) ) {
	$check_flag = false;
	$check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAGSEGURO_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");
	while ($check = tep_db_fetch_array($check_query)) {
	  if ($check['zone_id'] < 1) {
		$check_flag = true;
		break;
	  } elseif ($check['zone_id'] == $order->billing['zone_id']) {
		$check_flag = true;
		break;
	  }
	}
	if ($check_flag == false) {
	  $this->enabled = false;
	}
  }
}
function javascript_validation() {
  return true;
}
/*******************************************************************************
* function to handle options before exchanging data with the payment gateway
* Payment information screen
* ******************************************************************************/
function selection() {
  global $order;
  $shipping_cost = $order->info['shipping_cost'];
  $pagseguro_image = "https://pagseguro.uol.com.br/Security/Imagens/".(MODULE_PAYMENT_PAGSEGURO_CREDIT_CARD=='True'?"btnWebprefC.gif":"btnWebpref.gif");
  $fields = array();
  $fields[] = array('title' => 'Pagamento via PagSeguro',
					'text'  => "Finalize seu pagamento no site seguro do PagSeguro, e proteja-se de fraudes.");
  $fields[] = array('title' => 'Modos de pagamento aceitos:',
					'text'  => '');
  $fields[] = array('title' => '<a href="https://pagseguro.uol.com.br/?ind=632613"  target="blank"><img src="'.$pagseguro_image.'" width="300" border="0"></a>',
					'text'  => '');
  if (MODULE_PAYMENT_PAGSEGURO_SHIPPING=="True") { // Cálculo do frete pelo PagSeguro habilitado
	  $tipoFretes = array (array('id' => 'EN',
								 'text' => 'Encomenda Normal'),
						   array('id' => 'SD',
								 'text' => 'Sedex'));
	  if (($shipping_cost>0)&&false) { // desativado enquanto não aceita escolha caso a caso.
		  $fields[] = array('title' => "  Cálculo de frete padrão",
							'field' => tep_draw_radio_field("calcfrete", "LOJA", TRUE));
		  $fields[] = array('title' => "  Cálculo de frete pelo PagSeguro",
							'field' => tep_draw_radio_field("calcfrete", "PAGSEGURO"));
	  } else {
		  $fields[] = array('title' => "  Cálculo de frete pelo PagSeguro",
							'field' => tep_draw_hidden_field("calcfrete", "PAGSEGURO", true));
	  }
	  $fields[] = array('title' => '    Tipo de frete',
						'field' => tep_draw_pull_down_menu('TipoFrete', $tipoFretes));
  }
  $selection = array('id' => $this->code,
					 'module' => $this->title,
					 'fields' => $fields);
  return $selection;
}
/*************************************************************
* Checks the data in the Payment selection screen
* Validate data from this->selection() function
* if data is incorrect, return to checkout payment screen
* and prompt user for the incorrect data.
* ************************************************************/
function pre_confirmation_check() {
	return false;
}
/******************************************
* Function in the order confirmation screen
* *****************************************/
function confirmation() {
  global $HTTP_POST_VARS, $cartID, $cart_pagseguro_ID, $customer_id, $languages_id, $order, $order_total_modules, $insert_id;
  $confirmation = array('title' => $this->title . ': ',
						'fields' => array(array('title' => MODULE_PAYMENT_PAGSEGURO_TEXT_OUTSIDE,
												'field' => "")));
  if (tep_session_is_registered('cartID')) {
	$insert_order = false;
	if (tep_session_is_registered('cart_pagseguro_ID')) {
	  $order_id = substr($cart_pagseguro_ID, strpos($cart_pagseguro_ID, '-')+1);
	  $curr_check = tep_db_query("select currency from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");
	  $curr = tep_db_fetch_array($curr_check);
	  if ( ($curr['currency'] != $order->info['currency']) || ($cartID != substr($cart_pagseguro_ID, 0, strlen($cartID))) ) {
		$check_query = tep_db_query('select orders_id from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '" limit 1');
		if (tep_db_num_rows($check_query) < 1) {
		  tep_db_query('delete from ' . TABLE_ORDERS . ' where orders_id = "' . (int)$order_id . '"');
		  tep_db_query('delete from ' . TABLE_ORDERS_TOTAL . ' where orders_id = "' . (int)$order_id . '"');
		  tep_db_query('delete from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '"');
		  tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS . ' where orders_id = "' . (int)$order_id . '"');
		  tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . ' where orders_id = "' . (int)$order_id . '"');
		  tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_DOWNLOAD . ' where orders_id = "' . (int)$order_id . '"');
		}
		$insert_order = true;
	  }
	} else {
	  $insert_order = true;
	}
	if ($insert_order == true) {
	  $order_totals = array();
	  if (is_array($order_total_modules->modules)) {
		reset($order_total_modules->modules);
		while (list(, $value) = each($order_total_modules->modules)) {
		  $class = substr($value, 0, strrpos($value, '.'));
		  if ($GLOBALS[$class]->enabled) {
			for ($i=0, $n=sizeof($GLOBALS[$class]->output); $i<$n; $i++) {
			  if (tep_not_null($GLOBALS[$class]->output[$i]['title']) && tep_not_null($GLOBALS[$class]->output[$i]['text'])) {
				$order_totals[] = array('code' => $GLOBALS[$class]->code,
										'title' => $GLOBALS[$class]->output[$i]['title'],
										'text' => $GLOBALS[$class]->output[$i]['text'],
										'value' => $GLOBALS[$class]->output[$i]['value'],
										'sort_order' => $GLOBALS[$class]->sort_order);
			  }
			}
		  }
		}
	  }
	  $sql_data_array = array('customers_id' => $customer_id,
							  'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
							  'customers_company' => $order->customer['company'],
							  'customers_street_address' => $order->customer['street_address'],
							  'customers_number_address' => $order->customer['number_address'],																  'customers_comple_address' => $order->customer['comple_address'],
							  'customers_suburb' => $order->customer['suburb'],
							  'customers_city' => $order->customer['city'],
							  'customers_postcode' => $order->customer['postcode'],
							  'customers_state' => $order->customer['state'],
							  'customers_country' => $order->customer['country']['title'],
							  'customers_telephone' => $order->customer['telephone'],
							  'customers_email_address' => $order->customer['email_address'],
							  'customers_address_format_id' => $order->customer['format_id'],
							  'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
							  'delivery_company' => $order->delivery['company'],
							  'delivery_street_address' => $order->delivery['street_address'],
							  'delivery_number_address' => $order->delivery['number_address'],
							  'delivery_comple_address' => $order->delivery['comple_address'],
							  'delivery_suburb' => $order->delivery['suburb'],
							  'delivery_city' => $order->delivery['city'],
							  'delivery_postcode' => $order->delivery['postcode'],
							  'delivery_state' => $order->delivery['state'],
							  'delivery_country' => $order->delivery['country']['title'],
							  'delivery_address_format_id' => $order->delivery['format_id'],
							  'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],
							  'billing_company' => $order->billing['company'],
							  'billing_street_address' => $order->billing['street_address'],
							  'billing_number_address' => $order->billing['number_address'],
							  'billing_comple_address' => $order->billing['comple_address'],
							  'billing_suburb' => $order->billing['suburb'],
							  'billing_city' => $order->billing['city'],
							  'billing_postcode' => $order->billing['postcode'],
							  'billing_state' => $order->billing['state'],
							  'billing_country' => $order->billing['country']['title'],
							  'billing_address_format_id' => $order->billing['format_id'],
							  'payment_method' => $order->info['payment_method'],
							  'cc_type' => $order->info['cc_type'],
							  'cc_owner' => $order->info['cc_owner'],
							  'cc_number' => $order->info['cc_number'],
							  'cc_expires' => $order->info['cc_expires'],
							  'date_purchased' => 'now()',
							  'orders_status' => $order->info['order_status'],
							  'currency' => $order->info['currency'],
							  'currency_value' => $order->info['currency_value']);
	  tep_db_perform(TABLE_ORDERS, $sql_data_array);
	  $insert_id = tep_db_insert_id();
	  for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
		$sql_data_array = array('orders_id' => $insert_id,
								'title' => $order_totals[$i]['title'],
								'text' => $order_totals[$i]['text'],
								'value' => $order_totals[$i]['value'],
								'class' => $order_totals[$i]['code'],
								'sort_order' => $order_totals[$i]['sort_order']);
		tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
	  }
	  for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
		$sql_data_array = array('orders_id' => $insert_id,
								'products_id' => tep_get_prid($order->products[$i]['id']),
								'products_model' => $order->products[$i]['model'],
								'products_name' => $order->products[$i]['name'],
								'products_price' => $order->products[$i]['price'],
								'final_price' => $order->products[$i]['final_price'],
								'products_tax' => $order->products[$i]['tax'],
								'products_quantity' => $order->products[$i]['qty']);
		tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
		$order_products_id = tep_db_insert_id();
		$attributes_exist = '0';
		if (isset($order->products[$i]['attributes'])) {
		  $attributes_exist = '1';
		  for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
			if (DOWNLOAD_ENABLED == 'true') {
			  $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
								   from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
								   left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
								   on pa.products_attributes_id=pad.products_attributes_id
								   where pa.products_id = '" . $order->products[$i]['id'] . "'
								   and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
								   and pa.options_id = popt.products_options_id
								   and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
								   and pa.options_values_id = poval.products_options_values_id
								   and popt.language_id = '" . $languages_id . "'
								   and poval.language_id = '" . $languages_id . "'";
			  $attributes = tep_db_query($attributes_query);
			} else {
			  $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
			}
			$attributes_values = tep_db_fetch_array($attributes);
			$sql_data_array = array('orders_id' => $insert_id,
									'orders_products_id' => $order_products_id,
									'products_options' => $attributes_values['products_options_name'],
									'products_options_values' => $attributes_values['products_options_values_name'],
									'options_values_price' => $attributes_values['options_values_price'],
									'price_prefix' => $attributes_values['price_prefix']);
			tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);
			if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
			  $sql_data_array = array('orders_id' => $insert_id,
									  'orders_products_id' => $order_products_id,
									  'orders_products_filename' => $attributes_values['products_attributes_filename'],
									  'download_maxdays' => $attributes_values['products_attributes_maxdays'],
									  'download_count' => $attributes_values['products_attributes_maxcount']);
			  tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
			}
		  }
		}
	  }
	  $cart_pagseguro_ID = $cartID . '-' . $insert_id;
	  tep_session_register('cart_pagseguro_ID');
	}
  }
  return $confirmation;
}
function get_uf(){
   global $order;
	$res = tep_db_fetch_array($qry=tep_db_query('select countries_id from '.TABLE_COUNTRIES.' where countries_name="Brazil" or countries_name="Brasil"'));
	$br_id = $res['countries_id']; // código do Brasil. em caso da loja ter usado outro código interno.
	$res = tep_db_fetch_array($qry=tep_db_query('select zone_code from '.TABLE_ZONES.' where zone_country_id="'.$br_id.'" and zone_name="'.$order->delivery['state'].'"'));
	return $res['zone_code'];
}
function process_button() {
  global $HTTP_POST_VARS, $order, $cart, $currencies, $cartID, $cart_pagseguro_ID, $insert_id, $customer_id;
  $currency = MODULE_PAYMENT_PAGSEGURO_CURRENCY; // Somente reais
  // removes non numeric characters from the telephone field, and trims to 8 chars long.
  $cust_telephone = eregi_replace ("[^0-9]", "", $order->customer['telephone']);
  $cust_telephone2 = eregi_replace ("[^0-9]", "", $order->customer['ddd']);
  $st = strlen($cust_telephone)-8;
  if ($st>0) { // in case this string is longer than 8 characters (PagSeguro's settings)

	  $cust_telephone = substr($cust_telephone, $st, 8);
	  $cust_ddd = substr($cust_telephone2, 0, 2);
	  //$cust_num = "s/n";
	  //$cust_compl = " ";
  }
  $UF = $this->get_uf();
  $CEP = substr(eregi_replace ("[^0-9]", "", $order->customer['postcode']).'00000000',0,8);
  $insert_id = substr($cart_pagseguro_ID, strpos($cart_pagseguro_ID, '-')+1);
  $process_button_string = tep_draw_hidden_field('email_cobranca', MODULE_PAYMENT_PAGSEGURO_EMAIL) . "\n" .// email de cobrança, definido no admin
						   tep_draw_hidden_field('tipo', 'CP') . "\n" .  // Carrinho prório
						   tep_draw_hidden_field('moeda', 'BR') . "\n" .// Somente Reais - Substituí BRL por BR (Sergio)
						   tep_draw_hidden_field('cliente_nome', $order->customer['firstname']. " " . $order->customer['lastname']) . "\n" .
						   tep_draw_hidden_field('cliente_cep', $CEP) . "\n" .
						   tep_draw_hidden_field('cliente_end', $order->delivery['street_address']) . "\n" .
						   tep_draw_hidden_field('cliente_bairro', $order->delivery['suburb']) . "\n" .
						   tep_draw_hidden_field('cliente_cidade', $order->delivery['city']) . "\n" .
						   tep_draw_hidden_field('cliente_uf', $UF) . "\n" .
						   tep_draw_hidden_field('cliente_pais', 'BRA') . "\n" .
						   tep_draw_hidden_field('cliente_ddd', $cust_ddd) . "\n" .
						   tep_draw_hidden_field('cliente_tel', $cust_telephone) . "\n" .
						   tep_draw_hidden_field('cliente_num', $order->delivery['number_address']) . "\n" .
						   tep_draw_hidden_field('cliente_compl', $order->delivery['comple_address']) . "\n" .
						   												   tep_draw_hidden_field('cliente_email', $order->customer['email_address'])."\n";
  $order_subtotal = 0; // calcula o somatório dos valores dos produtos
  for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
	  $process_button_string .= tep_draw_hidden_field('item_id_'.($i+1),	$order->products[$i]['id']) . "\n" .
								tep_draw_hidden_field('item_descr_'.($i+1), $order->products[$i]['name'].(strlen($order->products[$i]['model'])>0?'['.$order->products[$i]['model'].']':'')) ."\n" .
								tep_draw_hidden_field('item_quant_'.($i+1), $order->products[$i]['qty']) ."\n" .
								tep_draw_hidden_field('item_valor_'.($i+1), round($order->products[$i]['final_price']* $currencies->get_value($currency)*100))."\n";
	  $order_subtotal += $order->products[$i]['qty'] * $order->products[$i]['final_price']* $currencies->get_value($currency)*100;
   	  if (MODULE_PAYMENT_PAGSEGURO_SHIPPING=='True') {
		  $process_button_string .= tep_draw_hidden_field('item_peso_'.($i+1),	(int)($order->products[$i]['weight']*(MODULE_PAYMENT_PAGSEGURO_WEIGHT=='Kg'?1000:1))) . "\n";
   	  }
  }
  // campo para informar os descontos / acréscimos extras do pedido
	  $retificacao = ($order->info['total'] - $order->info['shipping_cost'])* $currencies->get_value($currency)*100- $order_subtotal;
	  if ((int)$retificacao!=0) {
		  $process_button_string .= tep_draw_hidden_field('extras', floor($retificacao))."\n";
	  }
  //
  if (MODULE_PAYMENT_PAGSEGURO_SHIPPING=='True') {
	 $process_button_string .= "\n".tep_draw_hidden_field('tipo_frete', $_POST['TipoFrete']) ."\n"; // EN: encomenda normal; SD: Sedex
  } else {
	 $process_button_string .= "\n".tep_draw_hidden_field('item_frete_1', round($order->info['shipping_cost']* $currencies->get_value($currency)*100)) ."\n";
  }
  $process_button_string .= tep_draw_hidden_field('ref_transacao', 'Pedido: '.$insert_id.' - Cliente: '.$customer_id);
  return $process_button_string;
}
function before_process() {
// chamado pelo checkout_process.php depois que a transaçào foi finalizada
  global $HTTP_POST_VARS, $HTTP_GET_VARS, $order, $cart, $sendto, $billto, $currencies, $insert_id;
	if (isset($_SESSION['cart_pagseguro_ID'])) {
	   $tmp = explode('-', $_SESSION['cart_pagseguro_ID']);
	   $insert_id = $tmp[1];
	}
	$qry = tep_db_query ($txt="select * from temp_pagseguro where referencia like 'PEDIDO: $insert_id - CLIENTE: %'");
	$order_array = tep_db_fetch_array($qry);
	$status = trim($order_array['statustransacao']);
	$ids = explode('-',$order_array['referencia']);
	$tmp = explode(':',$ids[0]);
$this->debug_var ($order_array, "Pedido(recuperado do bd): ".$txt.' '. date("Y-m-d G:i:s"),true);
$this->debug_var ($status, "Status de pagamento: ".date("Y-m-d G:i:s"),true);
	$customer = explode(':',$ids[1]);
	$customer_id = trim($customer[1]);
	switch($status){
		case 'Completo':
		case 'Aprovado':
				$order->info['order_status'] = MODULE_PAYMENT_PAGSEGURO_APPROVED_ORDER_STATUS_ID;
$this->debug_var ($order->info['order_status'], "pagamento aprovado: ".date("Y-m-d G:i:s"),true);
		case 'Em Análise':
		case 'Aguardando Pagto':
				$order->info['comments'] .= "ID de Transação: ". $order_array['transacaoid'].
											"\nAnotação: ". $order_array['anotacao'].
											"\nTipo do Pagamento: ". $order_array['tipopagamento'].
											"\nStatus: ". $status;
				include(DIR_WS_CLASSES . 'order_total.php');
				$order_total_modules = new order_total;
				$order_totals = $order_total_modules->process();
				$order_id = $insert_id;
				$sql_data_array = array('orders_id' => $order_id,
										'orders_status_id' => $order->info['order_status'],
										'date_added' => 'now()',
										'customer_notified' => (SEND_EMAILS == 'true') ? '1' : '0',
										'comments' => $order->info['comments']);
				tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
				// update orders table
				$sql_data_array = array('orders_status' => $order->info['order_status']);
				tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', "orders_id = '" . (int)$order_id . "'");
		// initialized for the email confirmation
			  $products_ordered = '';
			  $subtotal = 0;
			  $total_tax = 0;
			  for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
		// Stock Update - Joao Correia
				if (STOCK_LIMITED == 'true') {
				  if (DOWNLOAD_ENABLED == 'true') {
					$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
										FROM " . TABLE_PRODUCTS . " p
										LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
										ON p.products_id=pa.products_id
										LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
										ON pa.products_attributes_id=pad.products_attributes_id
										WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
		// Will work with only one option for downloadable products
		// otherwise, we have to build the query dynamically with a loop
					$products_attributes = $order->products[$i]['attributes'];
					if (is_array($products_attributes)) {
					  $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
					}
					$stock_query = tep_db_query($stock_query_raw);
				  } else {
					$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
				  }
				  if (tep_db_num_rows($stock_query) > 0) {
					$stock_values = tep_db_fetch_array($stock_query);
		// do not decrement quantities if products_attributes_filename exists
					if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
					  $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
					} else {
					  $stock_left = $stock_values['products_quantity'];
					}
					tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
					if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
					  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
					}
				  }
				}
		// Update products_ordered (for bestsellers list)
				tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
		//------insert customer choosen option to order--------
				$attributes_exist = '0';
				$products_ordered_attributes = '';
				if (isset($order->products[$i]['attributes'])) {
				  $attributes_exist = '1';
				  for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
					if (DOWNLOAD_ENABLED == 'true') {
					  $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
										   from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
										   left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
										   on pa.products_attributes_id=pad.products_attributes_id
										   where pa.products_id = '" . $order->products[$i]['id'] . "'
										   and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
										   and pa.options_id = popt.products_options_id
										   and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
										   and pa.options_values_id = poval.products_options_values_id
										   and popt.language_id = '" . $languages_id . "'
										   and poval.language_id = '" . $languages_id . "'";
					  $attributes = tep_db_query($attributes_query);
					} else {
					  $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
					}
					$attributes_values = tep_db_fetch_array($attributes);
					$products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
				  }
				}
		//------insert customer choosen option eof ----
				$total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
				$total_tax	+= tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
				$total_cost   += $total_products_price;
				$products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
			  }
		// lets start with the email confirmation
			  $email_order = STORE_NAME . "\n" .
							 EMAIL_SEPARATOR . "\n" .
							 EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" .
							 EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $order_id, 'SSL', false) . "\n" .
							 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
			  if ($order->info['comments']) {
				$email_order .= tep_db_output($order->info['comments']) . "\n\n";
			  }
			  $email_order .= EMAIL_TEXT_PRODUCTS . "\n" .
							  EMAIL_SEPARATOR . "\n" .
							  $products_ordered .
							  EMAIL_SEPARATOR . "\n";
			  for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
				$email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
			  }
			  if ($order->content_type != 'virtual') {
				$email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .
								EMAIL_SEPARATOR . "\n" .
								tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
			  }
			  $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
							  EMAIL_SEPARATOR . "\n" .
							  tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";
			  if (is_object($$payment)) {
				$email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .
								EMAIL_SEPARATOR . "\n".
								EMAIL_TEXT_PAGSEGURO_WAIT. "\n";
				$payment_class = $$payment;
				$email_order .= $payment_class->title . "\n\n";
				if ($payment_class->email_footer) {
				  $email_order .= $payment_class->email_footer . "\n\n";
				}
			  }
			  tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
		// send emails to other people
			  if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
				tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
			  }
		// load the after_process function from the payment modules
			  $this->after_process();
			  $cart->reset(true);
		// unregister session variables used during checkout
			  tep_session_unregister('sendto');
			  tep_session_unregister('billto');
			  tep_session_unregister('shipping');
			  tep_session_unregister('payment');
			  tep_session_unregister('comments');
			  tep_session_unregister('cart_pagseguro_ID');
			  tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
			  return false;
			break;
		default:
			  $email_order = 'Pedido feito no '. STORE_NAME . "\n" .
							 'Cliente: '. $order->customer['firstname'] . ' ' . $order->customer['lastname']. "\n" .
							 EMAIL_SEPARATOR . "\n" .
							 'Status do pagamento: '. $status . "\n" .
							 EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" .
							 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n".
							 print_r($_SESSION,true);
			  tep_mail(	STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, 'Pedido efetuado e pago no PagSeguro - email enviado para verificação do funcionamento', $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
$this->debug_var ($email_order, "email de suporte: ".date("Y-m-d G:i:s"),true);
			  tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error='.urlencode('Ocorreu algum erro de comunicação com o servidor. Verifique se seu pagamento foi processado e entre em contato com a administração.'),'NONSSL', true, false));
	} // switch
	exit();
}
function after_process() {
  return false;
}
function get_error() {
	global $language;
	$error_text['title']='Erro:';
	$error_text['error']=urldecode($_GET['error']);
  return $error_text;
}
function check() {
  if (!isset($this->_check)) {
	$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PAGSEGURO_STATUS'");
	$this->_check = tep_db_num_rows($check_query);
  }
  return $this->_check;
}
function install() {
  $sort_order = 1;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "set_function, date_added) values ('Aprovacao de Pagamento - PagSeguro', 'MODULE_PAYMENT_PAGSEGURO_STATUS', 'True', ".
			   "'Voce deseja aprovar compras utilizando o pagseguro?', '6', '".$sort_order."', ".
			   "'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "date_added".
			   ") values (".
			   "'Email no PagSeguro', 'MODULE_PAYMENT_PAGSEGURO_EMAIL', '[email protected]', ".
			   "'Informar o email de cobrança registrado junto à PagSeguro.', '6', '".$sort_order."', ".
			   "now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "date_added".
			   ") values (".
			   "'Token', 'MODULE_PAYMENT_PAGSEGURO_TOKEN', '0', ".
			   "'Código de segurança gerado manualmente no website do PagSeguro.', '6', '".$sort_order."', ".
			   "now())");
  $sort_order++;  // Seleciona o código para a moeda padrão (em julho/2006 é Real, código = BRL, BR, etc)
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "date_added".
			   ") values (".
			   "'Moeda padrão', 'MODULE_PAYMENT_PAGSEGURO_CURRENCY', 'BR', ".
			   "'Código da moeda usado em seu site para o Real. Por ex.: BR, BRL, etc.', '6', '".$sort_order."', ".
			   "now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "set_function, date_added) values ('Unidade de peso', 'MODULE_PAYMENT_PAGSEGURO_WEIGHT', 'KG', ".
			   "'Você deseja calcular o frete em KG ou gramas?', '6', '".$sort_order."', ".
			   "'tep_cfg_select_option(array(\'Kg\', \'gramas\'), ', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "set_function, date_added) values ('Cálculo do frete pelo PagSeguro?', 'MODULE_PAYMENT_PAGSEGURO_SHIPPING', 'True', ".
			   "'Você deseja calcular o frete através do site do PagSeguro?', '6', '".$sort_order."', ".
			   "'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "set_function, date_added)
			   values ('Aceita cartão?', 'MODULE_PAYMENT_PAGSEGURO_CREDIT_CARD', 'False', ".
			   "'Sua conta está configurada para aceitar cartões de crédito?', '6', '".$sort_order."', ".
			   "'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
  $sort_order++;
/*
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "date_added".
			   ") values (".
			   "'Valor adicional 1', 'MODULE_PAYMENT_PAGSEGURO_ABSOLUTE', '', ".
			   "'Valor absoluto a ser acrescentado no total do pedido.', '6', '".$sort_order."', ".
			   "now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "date_added".
			   ") values (".
			   "'Valor adicional 2', 'MODULE_PAYMENT_PAGSEGURO_PERCENT', '', ".
			   "'Valor percentual a acrescentar ao valor total do pedido.', '6', '".$sort_order."', ".
			   "now())");
  $sort_order++;
*/
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "use_function, set_function, date_added".
			   ") values (".
			   "'Zonas suportadas', 'MODULE_PAYMENT_PAGSEGURO_ZONE', '0', ".
			   "'Se uma zona for selecionada, este meio de pagamento estará disponível somente para esta zona.', '6', '".$sort_order."', ".
			   "'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "use_function, set_function, date_added".
			   ") values (".
			   "'Status dos pedidos', 'MODULE_PAYMENT_PAGSEGURO_ORDER_STATUS_ID', '2', ".
			   "'Atualiza o status dos pedidos efetuados por este módulo de pagamento para este valor.', '6', '".$sort_order."', ".
			   "'tep_get_order_status_name', 'tep_cfg_pull_down_order_statuses(', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "use_function, set_function, date_added".
			   ") values (".
			   "'Pedidos aprovados', 'MODULE_PAYMENT_PAGSEGURO_APPROVED_ORDER_STATUS_ID', '2', ".
			   "'Atualiza o status dos pedidos aprovados por este módulo de pagamento para este valor.', '6', '".$sort_order."', ".
			   "'tep_get_order_status_name', 'tep_cfg_pull_down_order_statuses(', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "set_function, date_added)".
			   "values ('Debug log', 'MODULE_PAYMENT_PAGSEGURO_DEBUG_LOG', 'False', ".
			   "'O módulo deve criar um log de debug na pasta EXT? Em caso afirmativo, dê permissão de escrita à pasta EXT. o arquivo debug.log conterá informações sobre a comunicação entre os servidores.', '6', '".$sort_order."', ".
			   "'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION .
			   " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added)
		  values ('Email de debug', 'MODULE_PAYMENT_PAGSEGURO_DEBUG_EMAIL', '',
				  'Todos os parâmetros de uma notificação inválida serão enviados para este endereço de email se estiver presente.', '6', $sort_order, now())");
  $sort_order++;
  tep_db_query("insert into " . TABLE_CONFIGURATION . " (".
			   "configuration_title, configuration_key, configuration_value, ".
			   "configuration_description, configuration_group_id, sort_order, ".
			   "date_added".
			   ") values (".
			   "'Ordem de exibição', 'MODULE_PAYMENT_PAGSEGURO_SORT_ORDER', '0', ".
			   "'Determina a ordem de exibição do meio de pagamento.', '6', '".$sort_order."', ".
			   "now())");
  tep_db_query("CREATE TABLE temp_pagseguro (
					id INT( 13 ) NOT NULL AUTO_INCREMENT ,
					vendedoremail VARCHAR( 200 ) NOT NULL ,
					transacaoid VARCHAR( 40 ) NOT NULL ,
					referencia VARCHAR( 128 ) NOT NULL ,
					anotacao TEXT ,
					datatransacao DATE NOT NULL ,
					tipopagamento VARCHAR( 32 ) NOT NULL ,
					statustransacao VARCHAR( 32 ) NOT NULL ,
					clinome VARCHAR( 128 ) NOT NULL ,
					cliemail VARCHAR( 128 ) NOT NULL ,
					date_created datetime ,
					PRIMARY KEY ( id ));"
			  );
}
function remove() {
   tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
   tep_db_query("drop table temp_pagseguro");
}
function keys() {
	$key_listing = array();
	$qry = "select configuration_key from " . TABLE_CONFIGURATION . " where LOCATE('MODULE_PAYMENT_PAGSEGURO', configuration_key)>0 order by sort_order";
	$findkey = tep_db_query($qry);
	while($key = tep_db_fetch_array($findkey)){
		$key_listing[] = $key['configuration_key'];
	} // while
  return $key_listing;
}
  function debug_var($var, $name="", $to_file=false){
	if ($to_file) {
		if (MODULE_PAYMENT_PAGSEGURO_DEBUG_LOG=='True') {
			if ($txt = @fopen('ext/debug.log','a')) {
				fwrite($txt, "-----------------------------------\n");
				fwrite($txt, $name."\n");
				fwrite($txt,  print_r($var, true)."\n");
				fclose($txt);//
			}
		}
	} else {
		 print('<br><b>'.$name.'</b><br>');
		 echo '<pre>';
		 print_r($var);
		 echo '</pre>';
	}
  }
 }
?>

Link to comment
Share on other sites

  • 2 weeks later...

Depois de muito quebrar a cabeça, descobri pq o DDD nao estava indo.

 

 

 

Mude:

 

 

$cust_telephone2 = eregi_replace ("[^0-9]", "", $order->customer['ddd']);

 

 

Para:

 

$cust_ddd = eregi_replace ("[^0-9]", "", $order->customer['ddd']);

 

 

é isso aí!

Link to comment
Share on other sites

  • 11 months later...

No admin o campo DDD aparece, mas quando se eu mudar para outro numero e mandar atualizar aparece um 0 !!

 

Outra, no account_edit não aparece nada. Nem o DDD nem telefone. Eu insiro os dados e mando Continuar, qdo eu volto o campo contiuna em branco! Tanto o ddd como o do telefone.

 

Segui as intrunções como você postou.

 

O que pode ser este erro???

 

 

Alguem já conseguiu resolver o problema no admin que quando manda atualizar fica com um 0 ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...