Получить продукты в модуле prestashop и разместить модуль после проверки страницы - PullRequest
0 голосов
/ 20 декабря 2011

Я пишу модуль, назовем его base , который покажет кнопку после того, как vistor нажал на кнопку «Подтвердить покупку».На этой странице отображается общая цена, будет отправлено сообщение с благодарностью и электронное письмо.

На этой странице я хотел бы добавить свой модуль с помощью кнопки, которая при нажатии отправляет сведения о продукте надругой веб-сервис.Теперь у меня есть несколько вопросов:

  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 Ответ

1 голос
/ 23 декабря 2011

Вы можете использовать следующие крючки:

{$HOOK_ORDER_CONFIRMATION}
{$HOOK_PAYMENT_RETURN}  

Эти хуки отображаются в order-confimation.tpl после подтверждения оплаты.

...