2011-12-20 70 views
0

我正在寫一個模塊,我們將其稱爲基地,它將在vistor點擊buy +確認後顯示一個按鈕。這是顯示總價格的頁面,感謝消息和電子郵件將被髮送。在退房頁面檢索prestashop模塊中的產品並放置模塊

在該頁面上,我想添加我的模塊與按鈕,點擊它將產品詳細信息發送到另一個Web服務。現在我有幾個問題:

  1. 我可以使用哪些鉤放置在確認按鈕(結賬後)頁面。正如你所看到的,我正在使用多個鉤子來查看按鈕是否出現。它只出現在左側圓柱體

  2. 你認爲一般的代碼如何? getProducts()是正確的方法,只是從另一個標準模塊複製而來。你有我的例子嗎?

請忽略全局。我稍後會重構。

base.php(只是其中的重要組成部分)

<?php 
if (!defined('_PS_VERSION_')) 
    exit; 

class Base extends Module 
{ 

    public function install() { 
     return parent::install() && $this->registerHook('payment') && $this->registerHook('invoice') && $this->registerHook('leftColumn'); 
    } 

    public function uninstall() { 
     parent::uninstall(); 
    } 

    public function getContent() { 
     return '<h2>'.$this->displayName.'</h2> <div>nothing to configure</div>'; 
    } 

    public function hookPayment($params) { 
     if (!$this->active) 
      return; 

     global $smarty; 
     $smarty->assign('buttonText', $this->l('Send to my base')); 
     return $this->display(__FILE__, 'base.tpl'); 
} 


    public function ajaxCall($params) { 
     if (Configuration::get('PS_CATALOG_MODE')) 
      return "return;"; 

     return $params['cart']->getProducts(true); 
    } 
} 

products.php

include(dirname(__FILE__).'/../../config/config.inc.php'); 
include(dirname(__FILE__).'/../../init.php'); 
include(dirname(__FILE__).'/base.php'); 

$cart = new Cart((int)($cookie->id_cart)); 
$cart->id_lang = (int)($cookie->id_lang); 

$base = new Base(); 
var_dump($base->hookAjaxCall(array('cookie' => $cookie, 'cart' => $cart))); 

回答

1

你可以用這個鉤子:

{$HOOK_ORDER_CONFIRMATION} 
{$HOOK_PAYMENT_RETURN} 

這付款驗證後,會在訂單confimation.tpl中顯示鉤子。

+0

hookPaymentReturn是我想要的。感謝那。你能幫我解決另一個問題嗎?我如何獲得下訂單的產品和有關用戶的一些詳細信息?正如預期的那樣,購物車在訂購後不會有任何問題。 – vik 2011-12-27 13:10:01

+0

好的,得到我的答案。 $ params包含我需要的所有信息。在Prestashop類中簡要介紹一下如何處理這些數據。 – vik 2011-12-29 11:39:25