Magento检测结帐成功页面

时间:2018-02-23 14:25:18

标签: magento magento-1.9

我正在使用Magento 1.9并拥有一个PHP包含文件,我用它来显示基于页面类型的facebook像素代码。 IE:购物车,结账,产品详情,目录,cms ......

我正在查看页面请求模块,控制器,操作等。但是,我似乎找不到一种方法来确定他们是否在/ checkout / success / not 。如果我尝试查看请求URI,则返回/ checkout / cart /

我是否可以使用类属性或方法来确定用户实际上是在订单成功页面上?

2 个答案:

答案 0 :(得分:0)

我最终通过查看当前的引用ID(应该为null),当前控制器和最后的订单ID来完成它。

function getPageType($page)
{
    $request    = $page->getRequest();
    $controller = $request->getControllerName();
    $session = Mage::getSingleton('checkout/session');

    if($session->getLastOrderId() && !$session->getQuoteId() && $controller == 'cart')
    {
        return 'success';
    }
}

购买完成后,将清除当前报价。但是,由于我们仍然在购物车中,这意味着购买已经完成。我检查最后一个订单ID只是为了确保购买。

答案 1 :(得分:0)

You may also make use of the layout handle checkout_onepage_success.

Reference this in a layout of your custom module and in the referenced template file include the facebook pixel code.

<checkout_onepage_success translate="label">
        <reference name="after_body_start">
            <block type="core/template" template="example/fb/conversion.phtml" />
        </reference>
</checkout_onepage_success>

And, in example/fb/conversion.phtml, do the needful processing and include the facebook pixel code.

<script>
    fbq('track','Purchase', {
        value: <?php echo xxx ?>,
        currency: '<?php echo xxx ?>',
        content_ids: <?php echo xxx ?>,
        content_type: 'product',
        num_items: <?php echo xxx; ?>
    });
</script>