首页 文章

Magento检测结帐成功页面

提问于
浏览
0

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

我正在查看页面请求模块,控制器,操作等 . 但是,我似乎无法找到确定它们是否处于/ checkout /成功/否的方法 . 如果我尝试查看请求URI,则返回/ checkout / cart /

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

3 回答

  • 0

    您还可以使用布局句柄 checkout_onepage_success .

    在自定义模块的布局中以及在引用的模板文件中引用它包括facebook像素代码 .

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

    并且,在 example/fb/conversion.phtml 中,进行必要的处理并包含facebook像素代码 .

    <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>
    
  • 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只是为了确保有购买 .

  • 0

    您可以使用:

    if(Mage::app()->getRequest()->getActionName() == 'success'){
    // code
    }
    

相关问题