【问题标题】:Get order id and price without tax and shipping in Prestashop payment return在 Prestashop 付款退货中获取不含税和运费的订单 ID 和价格
【发布时间】:2018-01-29 09:52:43
【问题描述】:

请问如何在主题/mytheme/modules/bankwire/views/templates/hook/payment_return.tpl 中获取不含税和运费的订单 ID 和价格 到这个脚本

<script type="text/javascript" id="xxxxxxxxxxx" src="https://login.dognet.sk/scripts/fj27g82d"></script>
<script type="text/javascript">
PostAffTracker.setAccountId('xxxxxxxx');
var sale = PostAffTracker.createSale();
sale.setTotalCost( ***** ); //fill price without tax and shipping
sale.setOrderID( ***** ); //fill ID order

PostAffTracker.register();
</script>

sale.setTotalCost({$price_without_tax_and_shpping});

Prestashop 1.6.1.13 是否适用于会员计划。

谢谢帮助。

所以问题就在这里enter image description here

来自根目录/modules/bankwire/bankwire.php 的代码

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

        $state = $params['objOrder']->getCurrentState();
        if (in_array($state, array(Configuration::get('PS_OS_BANKWIRE'), Configuration::get('PS_OS_OUTOFSTOCK'), Configuration::get('PS_OS_OUTOFSTOCK_UNPAID'))))
        {
            $this->smarty->assign(array(
                'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false),
                'bankwireDetails' => Tools::nl2br($this->details),
                'bankwireAddress' => Tools::nl2br($this->address),
                'bankwireOwner' => $this->owner,
                'status' => 'ok',
                'id_order' => $params['objOrder']->id,
                'price_without_tax_and_shipping' => Tools::displayPrice($params['objOrder']->getTotalProductsWithoutTaxes(), $params['currencyObj'], false)
            ));
            if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference))
                $this->smarty->assign('reference', $params['objOrder']->reference);
        }
        else
            $this->smarty->assign('status', 'failed');
        return $this->display(__FILE__, 'payment_return.tpl');
    }

【问题讨论】:

    标签: javascript prestashop smarty prestashop-1.6


    【解决方案1】:

    快捷方式,编辑模块:

    public function hookPaymentReturn($params)
    {
        if (!$this->active)
            return;
    
        $state = $params['objOrder']->getCurrentState();
        if (in_array($state, array(Configuration::get('PS_OS_BANKWIRE'), Configuration::get('PS_OS_OUTOFSTOCK'), Configuration::get('PS_OS_OUTOFSTOCK_UNPAID'))))
        {
            $this->smarty->assign(array(
                'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false),
                'bankwireDetails' => Tools::nl2br($this->details),
                'bankwireAddress' => Tools::nl2br($this->address),
                'bankwireOwner' => $this->owner,
                'status' => 'ok',
                'id_order' => $params['objOrder']->id,
                'price_without_tax_and_shipping' => Tools::displayPrice($params['objOrder']->getTotalProductsWithoutTaxes(), $params['currencyObj'], false),
                'affiliate_price' => $params['objOrder']->getTotalProductsWithoutTaxes() // You have to add this
            ));
            if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference))
                $this->smarty->assign('reference', $params['objOrder']->reference);
        }
        else
            $this->smarty->assign('status', 'failed');
        return $this->display(__FILE__, 'payment_return.tpl');
    }
    

    然后,尝试使用 smarty {literal} 标签调整你的脚本:

    <script type="text/javascript" id="xxxxxxxxxxx" src="https://login.dognet.sk/scripts/fj27g82d"></script>
    <script type="text/javascript">
    {literal}
        PostAffTracker.setAccountId('xxxxxxxx');
        var sale = PostAffTracker.createSale();
        sale.setTotalCost({/literal}{$affiliate_price}{literal}); //fill price without tax and shipping
        sale.setOrderID({/literal}{$id_order}{literal}); //fill ID order
    
        PostAffTracker.register();
    </script>
    {/literal}
    

    它应该工作在 99.99%

    【讨论】:

    • 太棒了,它有效,请问你有 cashondelivery 模块的解决方案吗?
    • 对该模块应用相同的逻辑:),它与bankwire非常相似
    • 我明白了,但是 hookPaymentReturn 的部分会是什么样子?
    • @DominikDravecký 请提出另一个问题;)
    • 太棒了;)。我很高兴听到这个消息;)
    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 2018-12-12
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2019-02-28
    相关资源
    最近更新 更多