Magento 1.9 添加参数以添加到购物车 url

Magento 1.9 add parameter to add to cart url

我正在安装 Magento 1.9,它必须有直接结帐以及添加到购物车按钮。两者之间的主要(也是唯一)区别是直接结帐 link 应该跳过购物车并在单击时重定向到结帐。 我使用了适用于此处的 this code for the functionality, and as you can see there is a comment

"All I need to do is to put a parameter /checkout/ to the url"。 这让我发疯。

所以这是在 Observer 文件中的检查

if (Mage::app()->getRequest()->getParam('checkout')) {

看起来很简单,但我一直在绞尽脑汁并在网上搜索答案如何 "addParam" 以这种方式检查 returns 为真。

这是我想要此功能的表单(操作):

<form action="<?php echo $this->helper('checkout/cart')->getAddUrl($_product) ?>checkout/" method="post" id="product_addtocart_form" <?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>

如您所见,我将 /checkout/ 手动添加到 url,这在您查看浏览器指向的 url 时起作用,即:

<form action="example.com/checkout/cart/add/uenc/aHR0cDovL2JrZm9vdHdlYXIuaHlwZXJub2RlLmlvL21hbi9yb2NvLmh0bWw,/product/5651/form_key/Zs9uAOj8oTuQFAbj/checkout/" method="post" id="product_addtocart_form" <input="" type="hidden" name="sid" value="checkout">

但它不起作用,看起来检查功能没有 "see" 它。 我认为这有一个最简单的答案,但正如我所说,这几天让我很难受。有什么想法吗?

也许将 if 语句更改为检查 "checkout" 是否在调用的 url 中?

2016 年更新:在同样的情况下,我发现自己需要出于跟踪原因更改此解决方案。我现在所做的(与 相关)是将默认的“添加到购物车”按钮放置到位,并添加另一个(默认)按钮,该按钮带有 jQuery onClick 函数,将 url 设置为正确的添加到购物车-URL 与可变产品的选定选项。 使用 AJAX 我检查 URL 是否被正确调用,如果是,则重定向到结帐。一个更简单的解决方案。

您的问题是您正在检查已解析的参数以获取密钥 'checkout',但 Magento 实际上已将该参数存储为 0 => 'checkout'。我建议改用此代码:

模板

$this->getAddToCartUrl($_product, array('checkout' => true))

观察者

$observer->getRequest()->getParam('checkout')

确保您的缓存在测试时是 cleared/disabled。