/** * Get a hash of the customer location. * @return string */ public static function geolocation_ajax_get_location_hash() { $customer = new WC_Customer(); $location = array(); $location['country'] = $customer->get_country(); $location['state'] = $customer->get_state(); $location['postcode'] = $customer->get_postcode(); $location['city'] = $customer->get_city(); return substr(md5(implode('', $location)), 0, 12); }
function handlePaymentCompleted($order_id) { echo "-- handlePaymentCompleted"; $order = new WC_Order($order_id); $customer = new WC_Customer($order_id); $addresses = $order->get_address("shipping"); /* $To = get_option('admin_email').",dev_support@soixanteseize.com"; $Objet = $email_heading = "Vérifiez la commande ".$order_id; $message = $response[1]; ob_start(); include(COURIIERPATH.'views/mails/woo-couriier-order-ready.php'); $Body = ob_get_clean(); trace($Body); //sendCC($To, $Objet, $Body); return; */ $adresse = $addresses["address_1"] . ", "; if ($addresses["address_2"] != "") { $adresse .= $addresses["address_2"] . ", "; } $adresse .= $addresses["city"] . " "; $adresse .= $addresses["postcode"] . " "; //$postcode = $addresses["postcode"]; //trace($order); //trace($customer); //trace($order->get_address("shipping") ); //trace($adresse); $chosen_methods = $order->get_shipping_methods(); if (count($chosen_methods) > 0) { //$la_methode = object(); foreach ($chosen_methods as $c_method) { // trace($method); $chosen_method = $c_method['item_meta']['method_id'][0]; } //trace($chosen_method); $available_methods = WC()->session->get('shipping_methods_' . $addresses["postcode"]); //trace($available_methods); $offerIdTarifs = ''; foreach ($available_methods as $method) { //trace($method->speed); switch ($method->speed) { case 2: if ($chosen_method == 'couriier_classic_shipping_method') { $offerIdTarifs = $method->ref; } break; case 1: if ($chosen_method == 'couriier_rapide_shipping_method') { $offerIdTarifs = $method->ref; } break; case 0: if ($chosen_method == 'couriier_flash_shipping_method') { $offerIdTarifs = $method->ref; } break; } } //return; $adresse = $customer->get_address() . " " . $customer->get_postcode() . ", " . $customer->get_city(); $recipientLatLng = geoloc($adresse); //trace($customer); //trace($recipientLatLng); //trace($offerIdTarifs); //return; $body = array(array('offerIdTarifs' => $offerIdTarifs, 'pickupName' => get_bloginfo("name"), 'pickupLatitude' => PICKUPLAT, 'pickupLongitude' => PICKUPLNG, 'pickupAddress' => PICKUPADRESSE, 'pickupAddress2' => "test", 'pickupTel' => PICKUPTEL, 'pickupZip' => PICKUPZIP, 'pickupCity' => PICKUPCITY, 'recipientName' => $order->get_formatted_shipping_full_name(), 'recipientLatitude' => $recipientLatLng["lat"], 'recipientLongitude' => $recipientLatLng["lng"], 'recipientAddress' => $addresses["address_1"], 'recipientAddress2' => $addresses["address_2"], 'recipientTel' => $order->billing_phone, 'recipientZip' => $addresses["postcode"], 'recipientCity' => $addresses["city"], 'timeManagement' => "2015-04-24 00:00:00", 'deliveryType' => "En main propre")); //trace($body); //return; $body = json_encode($body); $url = COURIIER_WS . '/orders'; //trace($url); $response = api_call_post($url, $body); //trace($response); $response = json_decode($response['body']); //trace($response); $couriier_order_id = $response[0]->id; //trace($order_id); //return; if ($couriier_order_id) { /** url_order_follow **/ $url_order_follow = $response[0]->following_url; //trace($url_order_follow); if ($url_order_follow) { $To = $order->billing_email; $Objet = $email_heading = "Votre lien pour suivre la livraison Couriier"; ob_start(); include COURIIERPATH . 'views/mails/woo-couriier-order-follow.php'; $Body = ob_get_clean(); sendCC($To, $Objet, $Body); } /** url_order_ready **/ $url_rest_order_ready = get_bloginfo("url") . '/wc-api/couriier-order-ready?order_id=' . $order_id . '&couriier_order_id=' . $couriier_order_id; //$url_order_ready = COURIIER_WS.'/order/'.$couriier_order_id.'/ready'; //trace($url_rest_order_ready); //return; $To = get_option('admin_email') . ",dev_support@soixanteseize.com"; $Objet = $email_heading = "Votre lien pour lancer la livraison Couriier"; ob_start(); include COURIIERPATH . 'views/mails/woo-couriier-order-ready.php'; $Body = ob_get_clean(); //trace($Body); sendCC($To, $Objet, $Body); //return; } } else { $To = get_option('admin_email') . ",dev_support@soixanteseize.com"; $Objet = $email_heading = "U+026A0 Vérifiez la commande " . $order_id; $message = $response[1]; ob_start(); include COURIIERPATH . 'views/mails/woo-couriier-blank.php'; $Body = ob_get_clean(); //trace($Body); sendCC($To, $Objet, $Body); } //sendCC($To, $Objet, $Body); }
/** * Generate form * @param $order_id * @return string */ function generate_pagantis_eom_form($order_id) { //Logs $this->log->add('pagantis', 'Acceso al pago con Paga+Tarde'); $order = new WC_Order($order_id); //Total Amount $transaction_amount = number_format((double) $order->get_total(), 2, '.', ''); $transaction_amount = str_replace('.', '', $transaction_amount); $transaction_amount = floatval($transaction_amount); // Product Description $products = WC()->cart->cart_contents; $i = 1; $products_form = ""; $description = ""; foreach ($products as $product) { $products_form .= "\r\n <input name='items[" . $i . "][description]' type='hidden' value='" . $product['data']->post->post_title . ' (' . $product['quantity'] . ')' . "'>\r\n <input name='items[" . $i . "][quantity]' type='hidden' value='" . $product['quantity'] . "'>\r\n <input name='items[" . $i . "][amount]' type='hidden' value='" . $product['data']->price * $product['quantity'] . "'>\r\n "; $description[] = $product['data']->post->post_title . ' (' . $product['quantity'] . ')'; $i++; } $shipping = $order->get_items('shipping'); foreach ($shipping as $shipping_method) { if ($shipping_method['cost'] > 0) { $products_form .= "\r\n <input name='items[" . $i . "][description]' type='hidden' value='" . __('Gastos de envio', 'pagantis') . "'>\r\n <input name='items[" . $i . "][quantity]' type='hidden' value='1'>\r\n <input name='items[" . $i . "][amount]' type='hidden' value='" . $shipping_method['cost'] . "'>\r\n "; $description[] = 'Gastos de envio'; $i++; } } $this->ok_url = $this->get_return_url($order); $this->ko_url = htmlspecialchars_decode($order->get_cancel_order_url()); $account_id = ""; $dataToEncode = ""; //Test Environment Selected if ($this->environment == self::TEST_ENVIRONMENT) { $this->key = $this->test_key; $dataToEncode = $this->test_key . $this->test_account . $order_id . $transaction_amount . $this->currency . $this->ok_url . $this->ko_url . $this->callback_url; $account_id = $this->test_account; } else { $this->key = $this->real_key; $dataToEncode = $this->real_key . $this->real_account . $order_id . $transaction_amount . $this->currency . $this->ok_url . $this->ko_url . $this->callback_url; $account_id = $this->real_account; } $signature = sha1($dataToEncode); $form_url = $this->paga_mastarde_url; $adressInfo = explode("/", $order->billing_city); $customer = new WC_Customer(); $countries = new WC_Countries(); $address = $customer->get_address() . " " . $customer->get_address_2(); $city = $customer->get_city(); $postcode = $customer->get_postcode(); $states = $countries->get_states(); $state = $states[$order->shipping_country][$customer->get_state()]; //todo can include shipping information //Create Form $buyer_name = $order->billing_first_name . " " . $order->billing_last_name; $pagantis_form_fields = "\r\n <input name='order_id' type='hidden' value='" . $order_id . "' />\r\n <input name='amount' type='hidden' value='" . $transaction_amount . "' />\r\n <input name='currency' type='hidden' value='" . $this->currency . "' />\r\n\r\n <input name='ok_url' type='hidden' value='" . $this->ok_url . "' />\r\n <input name='nok_url' type='hidden' value='" . $this->ko_url . "' />\r\n\r\n <input name='locale' type='hidden' value='" . $this->lang . "' />\r\n\r\n <input name='full_name' type='hidden' value='" . $buyer_name . "'>\r\n <input name='email' type='hidden' value='" . $order->billing_email . "'>\r\n\r\n " . $products_form . "\r\n\r\n <!-- firma de la operación -->\r\n <input name='account_id' type='hidden' value='" . $account_id . "' />\r\n <input name='signature' type='hidden' value='" . $signature . "' />\r\n\r\n <!-- discount -->\r\n <input name='iframe' type='hidden' value='" . $this->iframe . "' />\r\n\r\n <!-- callback url -->\r\n <input name='callback_url' type='hidden' value='" . $this->callback_url . "' />\r\n\r\n <input name='description' type='hidden' value='" . implode(',', $description) . "' />\r\n\r\n <!-- address -->\r\n <input name='address[street]' type='hidden' value='" . $address . "'>\r\n <input name='address[city]' type='hidden' value='" . $city . "'>\r\n <input name='address[province]' type='hidden' value='" . $state . "'>\r\n <input name='address[zipcode]' type='hidden' value='" . $postcode . "'>\r\n\r\n <!-- eom -->\r\n <input name='end_of_month' type='hidden' value='true'>\r\n <!-- phone -->\r\n\r\n <input name='phone' type='hidden' value='" . $order->billing_phone . "'>\r\n "; $return_form = '<form action="' . $form_url . '" method="post" id="pagantis_payment_form"> ' . $pagantis_form_fields . ' <a class="button cancel floatLeft" href="' . $order->get_cancel_order_url() . '">' . __('Cancelar Pedido', 'pagantis') . '</a> <input type="submit" class="button-alt" id="submit_vme_payment_form" value="' . __('Realizar el pago', 'pagantis') . '" /> </form>'; if ($this->iframe == 'true') { $return_form .= "<script type='text/javascript'>\r\n\r\n jQuery(document).ready(function() {\r\n if (jQuery.isFunction(jQuery.fancybox) ){\r\n jQuery('#submit_vme_payment_form').on('click', function (e) {\r\n e.preventDefault(); // avoids calling success.php from the link\r\n //post data to get form url.\r\n jQuery.ajax({\r\n type: 'POST',\r\n url: '" . get_site_url() . "/wp-content/plugins/pagamastarde-payment-gateway-for-woocommerce/getPmtUrl.php',\r\n data: jQuery('#pagantis_payment_form').serialize(),\r\n success: function(data, textStatus, jqXHR)\r\n {\r\n jQuery.fancybox({\r\n // fancybox API options\r\n type: 'iframe',\r\n fitToView: false,\r\n openEffect: 'none',\r\n closeEffect: 'none',\r\n 'width' : 920,\r\n 'minHeight' : 230,\r\n 'href': data\r\n }); // fancybox\r\n }\r\n });\r\n }); // on\r\n }\r\n }); //ready\r\n\r\n </script>"; } return $return_form; }
$state = ''; $zip = ''; break; } if (isset($_COOKIE['builder_user'])) { $customer = unserialize(str_replace('\\"', '"', $_COOKIE['builder_user'])); foreach ($customer as $field => $value) { if ($field == 'billing_state') { $state = $value; } } } elseif (is_user_logged_in()) { $customer_data = new WC_Customer(); global $current_user; get_currentuserinfo(); $customer = array('billing_first_name' => $current_user->user_firstname, 'billing_last_name' => $current_user->user_lastname, 'billing_email' => $current_user->user_email, 'billing_phone' => '', 'billing_address_1' => $customer_data->get_address(), 'billing_address_2' => $customer_data->get_address_2(), 'billing_city' => $customer_data->get_city(), 'billing_postcode' => $customer_data->get_postcode(), 'billing_state' => $customer_data->get_state()); } ?> <style type="text/css" media="screen"> #contact_form { padding-bottom:20px; } #contact_form .field_block { float:left; width:45%; margin-right:5%; padding-bottom:10px; } #contact_form .field_block label { display:block; font-weight:bold; } #contact_form .field_block input, #contact_form .field_block select { width:100%; } </style> <div id="contact_form"> <div class="field_block"> <label><?php echo $firstname; ?>
/** * Generate form * @param $order_id * @return string */ function generate_pagantis_form($order_id) { //Logs $this->log->add('pagantis', 'Acceso al pago con Paga+Tarde'); $order = new WC_Order($order_id); //Total Amount $transaction_amount = number_format((double) $order->get_total(), 2, '.', ''); $transaction_amount = str_replace('.', '', $transaction_amount); $transaction_amount = floatval($transaction_amount); // Product Description $products = WC()->cart->cart_contents; $i = 1; $products_form = ""; $description = ""; foreach ($products as $product) { $products_form .= "\r\n <input name='items[" . $i . "][description]' type='hidden' value='" . $product['data']->post->post_title . ' (' . $product['quantity'] . ')' . "'>\r\n <input name='items[" . $i . "][quantity]' type='hidden' value='" . $product['quantity'] . "'>\r\n <input name='items[" . $i . "][amount]' type='hidden' value='" . round(($product['data']->price + $product['line_tax']) * $product['quantity'], 2) . "'>\r\n "; $description[] = $product['data']->post->post_title . ' (' . $product['quantity'] . ')'; $i++; } $shipping = $order->get_items('shipping'); foreach ($shipping as $shipping_method) { if ($shipping_method['cost'] > 0) { $products_form .= "\r\n <input name='items[" . $i . "][description]' type='hidden' value='" . __('Gastos de envio', 'pagantis') . "'>\r\n <input name='items[" . $i . "][quantity]' type='hidden' value='1'>\r\n <input name='items[" . $i . "][amount]' type='hidden' value='" . $shipping_method['cost'] . "'>\r\n "; $description[] = 'Gastos de envio'; $i++; } } $account_id = ""; $dataToEncode = ""; $this->ok_url = $this->get_return_url($order); $this->ko_url = htmlspecialchars_decode(WC_Cart::get_checkout_url()); $this->cancelled_url = htmlspecialchars_decode(WC_Cart::get_checkout_url()); //Test Environment Selected if ($this->environment == self::TEST_ENVIRONMENT) { $this->key = $this->test_key; $dataToEncode = $this->test_key . $this->test_account . $order_id . $transaction_amount . $this->currency . $this->ok_url . $this->ko_url . $this->callback_url . $this->discount . $this->cancelled_url; $account_id = $this->test_account; } else { $this->key = $this->real_key; $dataToEncode = $this->real_key . $this->real_account . $order_id . $transaction_amount . $this->currency . $this->ok_url . $this->ko_url . $this->callback_url . $this->discount . $this->cancelled_url; $account_id = $this->real_account; } $signature = hash('sha512', $dataToEncode); $form_url = $this->paga_mastarde_url; $adressInfo = explode("/", $order->billing_city); $customer = new WC_Customer(); $countries = new WC_Countries(); $address = $customer->get_address() . " " . $customer->get_address_2(); $city = $customer->get_city(); $postcode = $customer->get_postcode(); $states = $countries->get_states(); $state = $states[$order->shipping_country][$customer->get_state()]; $saddress = $customer->shipping_address_1 . " " . $customer->shipping_address_2; $scity = $customer->shipping_city; $spostcode = $customer->shipping_postcode; $sstate = $states[$order->shipping_country][$customer->shipping_state]; //Create Form $buyer_name = $order->billing_first_name . " " . $order->billing_last_name; $pagantis_form_fields = "\r\n <input name='order_id' type='hidden' value='" . $order_id . "' />\r\n <input name='amount' type='hidden' value='" . $transaction_amount . "' />\r\n <input name='currency' type='hidden' value='" . $this->currency . "' />\r\n\r\n <input name='ok_url' type='hidden' value='" . $this->ok_url . "' />\r\n <input name='nok_url' type='hidden' value='" . $this->ko_url . "' />\r\n <input name='cancelled_url' type='hidden' value='" . $this->cancelled_url . "' />\r\n\r\n <input name='locale' type='hidden' value='" . $this->lang . "' />\r\n\r\n <input name='full_name' type='hidden' value='" . $buyer_name . "'>\r\n <input name='email' type='hidden' value='" . $order->billing_email . "'>\r\n\r\n " . $products_form . "\r\n\r\n <!-- firma de la operación -->\r\n <input name='account_id' type='hidden' value='" . $account_id . "' />\r\n <input name='signature' type='hidden' value='" . $signature . "' />\r\n\r\n <!-- discount -->\r\n <input name='discount[full]' type='hidden' value='" . $this->discount . "' />\r\n <input name='iframe' type='hidden' value='" . $this->iframe . "' />\r\n\r\n <!-- callback url -->\r\n <input name='callback_url' type='hidden' value='" . $this->callback_url . "' />\r\n\r\n <input name='description' type='hidden' value='" . implode(',', $description) . "' />\r\n\r\n <!-- address -->\r\n <input name='address[street]' type='hidden' value='" . $address . "'>\r\n <input name='address[city]' type='hidden' value='" . $city . "'>\r\n <input name='address[province]' type='hidden' value='" . $state . "'>\r\n <input name='address[zipcode]' type='hidden' value='" . $postcode . "'>\r\n\r\n <input name='shipping[street]' type='hidden' value='" . $saddress . "'>\r\n <input name='shipping[city]' type='hidden' value='" . $scity . "'>\r\n <input name='shipping[province]' type='hidden' value='" . $sstate . "'>\r\n <input name='shipping[zipcode]' type='hidden' value='" . $spostcode . "'>\r\n\r\n <!-- phone -->\r\n\r\n <input name='mobile_phone' type='hidden' value='" . $order->billing_phone . "'>\r\n "; $return_form = '<form action="' . $form_url . '" method="post" id="pagantis_payment_form"> ' . $pagantis_form_fields . ' <input type="submit" class="button-alt" id="submit_vme_payment_form" value="' . __('Realizar el pago', 'pagantis') . '" /> </form>'; if ($this->iframe == 'true') { wp_enqueue_style('style', esc_url(plugins_url('pages/assets/css/iframe.css', __FILE__))); $return_form .= '<div id="myModal" class="paylater_modal"> <!-- Modal content --> <div class="paylater_modal-content"> <span id="paylater_close">x</span> <iframe id="iframe-pagantis" name="iframe-pagantis" style="width:100%;height:600px;display:block"></iframe> </div> </div>'; $return_form .= '<script type="text/javascript"> el = document.getElementById("submit_vme_payment_form"); el.addEventListener("click", function (e){ e.preventDefault(); document.getElementById("pagantis_payment_form").setAttribute("target", "iframe-pagantis"); document.getElementById("pagantis_payment_form").submit(); document.getElementById("iframe-pagantis").style.display = "block"; document.getElementById("myModal").style.display = "block"; }); var closeModal = function closeModal(evt) { evt.preventDefault(); document.getElementById("myModal").style.display = "none"; }; var elements = document.querySelectorAll("#paylater_close, #myModal"); Array.prototype.forEach.call(elements, function(el){ el.addEventListener("click", closeModal); }); document.addEventListener("DOMContentLoaded", function(event) { document.getElementById("pagantis_payment_form").setAttribute("target", "iframe-pagantis"); document.getElementById("pagantis_payment_form").submit(); document.getElementById("iframe-pagantis").style.display = "block"; document.getElementById("myModal").style.display = "block"; }); </script>'; } else { $return_form .= "<script type='text/javascript'>\r\n jQuery(document).ready(function() {\r\n jQuery('#submit_vme_payment_form').click();\r\n });\r\n </script>"; } return $return_form; }