私はモジュールを書いています。これをbaseと呼びましょう。これは、vistor が購入 + 確認をクリックした後にボタンを表示します。合計金額が表示されるページで、お礼のメッセージとメールが送信されます。
そのページで、クリックすると製品の詳細が別の Web サービスに送信されるボタンを含むモジュールを追加したいと考えています。今、私はいくつかの質問があります:
そのボタンを確認(チェックアウト後)ページに配置するには、どのフックを使用できますか。ご覧のとおり、ボタンが表示されるかどうかを確認するためだけに、いくつかのフックを使用しています。leftColumn にのみ表示されます
コード全体についてどう思いますか。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);
}
}
製品.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)) );