【问题标题】:Magento Detect checkout success pageMagento 检测结帐成功页面
【发布时间】:2018-02-23 14:25:18
【问题描述】:

我正在使用 Magento 1.9 并有一个 PHP 包含文件,我用它来根据页面类型显示 facebook 像素代码。 IE:购物车、结帐、产品详细信息、目录、cms...

我正在查看页面请求模块、控制器、操作等。但是,我似乎找不到确定它们是否位于 /checkout/success/ 的方法。如果我尝试查看请求 URI,它会返回 /checkout/cart/

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

【问题讨论】:

  • 如果您在浏览器中手动输入网址,它会将您重定向到购物车页面,要访问成功页面,您必须下订单。默认magento中成功的控制器操作也是checkout/onepage/success/
  • @Piyush 感谢您的帮助,但我已经知道如何访问页面,即使这是正确的操作,当您调用 $this->getAction() 时页面不会返回->getActionName();
  • 你能告诉我你在哪里添加了这段代码吗?
  • 我创建了一个新的 PHP 文件并将其包含在模板的前端页面\html\header.phtml 文件中。然后我用 getPageType($this) 调用它

标签: magento magento-1.9


【解决方案1】:

我最终通过查看当前报价 ID(应该为空)、当前控制器和最后一个订单 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,以确保有购买。

【讨论】:

    【解决方案2】:

    你可以使用:

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

    【讨论】:

      【解决方案3】:

      您也可以使用布局句柄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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-09
        相关资源
        最近更新 更多