Jump to content

Mettre du code dans le header (js) dans la page de confirmation de commande pour le module paypal


Recommended Posts

Bonjour,

 

Je suis à la développement d'un module qui insère du code javascript dans le header des pages de confirmation de commande.

Mais j'ai pas trouvé comment le mettre pour le module paypal et le module cmccicpaiement.

Pour les modules virement bancaire c'est bon 

 

J'ai mis ce code dans la méthode hookHeader 

public function hookHeader($params){
                if(!$this->context->controller->php_self){
                    return '';
                }
                if(('order-confirmation' == $this->context->controller->php_self ) && Configuration::get('page') == 'confirmation de commande'){
                    
                    return $this->_getEulerianTrackingOrderConfirmation();
                }elseif(strpos('validation', $_SERVER['PHP_SELF']) !== false AND Configuration::get('page') == 'confirmation de commande'){
                   return $this->_getEulerianTrackingOrderConfirmation();
                }
                elseif ( 'order' == $this->context->controller->php_self AND (int)Tools::getValue('step')==3 && 'méthode de paiement' == Configuration::get('page') ){    
                    $id_cart = $params['cart']->id;
                    
                return $this->_getEulerianTrackingPaymentChoice($id_cart);
                    
                }  else {
                   return $this->_getEulerianTracking(); 
                }
}

​function _getEulerianTrackingOrderConfirmation(){    
               $email = "";		
               if ($this->context->customer && $this->context->customer->isLogged()){
			$email = $this->context->customer->email;
		}
                $id_order = Tools::getValue('id_order');
                $order = new Order((int)$id_order);
                $products = $order->getProducts();
                $return = '';
               
                foreach($products as $product){
            
                    $p[] =  array('reference' => $product['reference'], 'price' => round(Product::getPriceStatic((int)$product['id_product']),2),'quantity' => (int)$product['product_quantity'],'name'=>$product['product_name']);
                  
                            
                }            
               
               
                 $return = '
                <script type="text/javascript">

                /*<![CDATA[*/
                var EA_data = [
                "email", "'.$email.'"
                ,"ref", "'.$order->reference.'"
                ,"amount", "'.$order->getTotalProductsWithTaxes().'"
                ,"type", "Vente"
                ,"payment", "'.$order->payment.'"
                ,"prdref", "'.$p[0]['reference'].'"
                ,"prdamount", "'.$p[0]['price'].'"
                ,"prdquantity", "'.$p[0]['quantity'].'"
                ,"prdname", "'.$p[0]['name'].'" /* optionnel */';
                if (isset($p[1]) || array_key_exists(1, $p)) { 

                $return .= "\r\n";
                $return .=
                ',"prdref", "'.$p[1]['reference'].'"
                ,"prdamount", "'.$p[1]['price'].'"
                ,"prdquantity", "'.$p[1]['quantity'].'"
                ,"prdname", "'.$p[1]['name'].'" /* optionnel */';
                }
                if (isset($p[2]) || array_key_exists(2, $p)) { 

                $return .= "\r\n";
                $return .=
                 ',"prdref", "'.$p[2]['reference'].'"
                ,"prdamount", "'.$p[2]['price'].'"
                ,"prdquantity", "'.$p[2]['quantity'].'"
                ,"prdname", "'.$p[2]['name'].'" /* optionnel */';
                }
                $return .=
                '];
                (function(){var d=document;if(!d.location.protocol.indexOf(\'http\')){var o=d.createElement(\'script\'),a=d.getElementsByTagName(\'script\')[0];o.type=\'text/javascript\';o.async=\'async\';o.defer=\'defer\';o.src=\'//ea.ciblo.net/ea.js\';a.parentNode.insertBefore(o,a);[spam-filter])();
                /*]]>*/
                </script>';
               
                
                return $return;       

             
		
	}

J'ai eu l'idée de tester si le nom de la page contient le mot validation

if(strpos('validation', $_SERVER['PHP_SELF']) !== false AND Configuration::get('page') == 'confirmation de commande') 

Maiss je sais pas si ça marche ou pas

Merci d'avance.

Edited by tarek.fellah (see edit history)
Link to comment
Share on other sites

Bonjour,

 

utilisez plutôt le hook de confirmation de commande

Merci pour ta réponse.

Pour paypal j'ai utilisé le hook hookDisplayOrderConfirmation, mais pour cmcicpaiement, il n'y a pas appel à ce hook, mais j'ai vu l'utilisation du hook 

'hookOrderConfirmation', j'ajoute le code dans ce hook dans le module cmcicpaiement, ou bien j'ajoute le hook dans mon module?.

Merci d'avance.

Edited by tarek.fellah (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...