Magento 检测结帐成功页面
Magento Detect checkout success page
我正在使用 Magento 1.9,并且有一个 PHP 包含文件,我用它来根据页面类型显示 facebook 像素代码。 IE:购物车、结帐、产品详细信息、目录、cms...
我正在查看页面请求模块、控制器、操作等。但是,我似乎无法找到确定它们是否位于 /checkout/success/ 的方法。如果我尝试查看请求 URI,它 returns /checkout/cart/
有没有 class 属性 或方法可以用来确定用户实际上在订单成功页面上?
我最终通过查看当前报价 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 只是为了确保有购买。
您可以使用:
if(Mage::app()->getRequest()->getActionName() == 'success'){
// code
}
您也可以使用布局句柄 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>
我正在使用 Magento 1.9,并且有一个 PHP 包含文件,我用它来根据页面类型显示 facebook 像素代码。 IE:购物车、结帐、产品详细信息、目录、cms...
我正在查看页面请求模块、控制器、操作等。但是,我似乎无法找到确定它们是否位于 /checkout/success/ 的方法。如果我尝试查看请求 URI,它 returns /checkout/cart/
有没有 class 属性 或方法可以用来确定用户实际上在订单成功页面上?
我最终通过查看当前报价 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 只是为了确保有购买。
您可以使用:
if(Mage::app()->getRequest()->getActionName() == 'success'){
// code
}
您也可以使用布局句柄 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>