/** * pagseguro_return() * * Sensível ao carregamento da pág. de retorno (transaction_results), executa o * transact_url caso tenha recebido um post * */ function pagseguro_return() { if ($_SERVER['REQUEST_METHOD'] == 'POST' and $_POST) { if (get_option('transact_url') == "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]) { transact_url(); } } }
<?php $_GET["sessionid"] = $_GET["sessionid"] == "" ? $_SESSION["pagseguro_id"] : $_GET["sessionid"]; require_once "pagseguro/pgs.php"; require_once "pagseguro/tratadados.php"; $nzshpcrt_gateways[$num]['name'] = 'PagSeguro'; $nzshpcrt_gateways[$num]['admin_name'] = 'PagSeguro'; $nzshpcrt_gateways[$num]['internalname'] = 'pagseguro'; $nzshpcrt_gateways[$num]['function'] = 'gateway_pagseguro'; $nzshpcrt_gateways[$num]['form'] = "form_pagseguro"; $nzshpcrt_gateways[$num]['submit_function'] = "submit_pagseguro"; if (get_option('transact_url') == "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REDIRECT_URL"]) { transact_url(); } function gateway_pagseguro($seperator, $sessionid) { global $wpdb; // Carregando os dados $cart = unserialize($_SESSION['wpsc_cart']); $options = array('email_cobranca' => get_option('pagseguro_email'), 'ref_transacao' => $_SESSION['order_id'], 'encoding' => 'utf-8', 'item_frete_1' => number_format(($cart->total_tax + $cart->base_shipping) * 100, 0, '', '')); // Dados do cliente $_cliente = $_POST["collected_data"]; list($ddd, $telefone) = trataTelefone($_cliente[17]); list($end, $num, $compl) = trataEndereco($_cliente[4]); $cliente = array('nome' => $_POST["collected_data"][2] . " " . $_cliente[3], 'cep' => preg_replace("/[^0-9]/", "", $_cliente[7]), 'end' => $end, 'num' => $num, 'compl' => $compl, 'bairro' => '', 'cidade' => '', 'uf' => '', 'pais' => 'Brasil', 'ddd' => $ddd, 'tel' => $telefone, 'email' => $_cliente[8]); // Usando a session, isso é correto $cart = $cart->cart_items; $produtos = array(); foreach ($cart as $item) { $produtos[] = array("id" => (string) $item->product_id, "descricao" => $item->product_name, "quantidade" => $item->quantity, "valor" => $item->unit_price); }