我正在安装 Magento 1.9,它必须有直接结帐以及添加到购物车按钮。两者之间的主要(也是唯一)区别是直接结帐链接应跳过购物车并在单击时重定向到结帐。 我用了this code对于功能,如您所见,有 a comment这适用于此。
“我需要做的就是将参数/checkout/放入 url”。 这让我发疯。
所以这是在 Observer 文件中的检查
if (Mage::app()->getRequest()->getParam('checkout')) {
看起来很简单,但我一直在绞尽脑汁在网上搜索如何以这种检查返回 true 的方式“addParam”的答案。
这是我想要此功能的表单(操作):
<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">
但它不起作用,看起来检查功能没有“看到”它。 我认为这有一个最简单的答案,但正如我所说,这几天让我很难受。有什么想法吗?
也许将 if 语句更改为检查调用的 url 中是否包含“checkout”?
2016 年更新:在同样的情况下,我发现自己需要出于跟踪原因更改此解决方案。我现在所做的(与 this question 相关)是将默认的添加到购物车按钮放置到位,并添加另一个(默认)按钮和一个 jQuery onClick 函数,该函数将 url 设置为正确的添加到购物车 URL可变产品的选定选项。 我使用 AJAX 检查 URL 是否被正确调用,如果正确,则重定向到结帐。一个更简单的解决方案。
最佳答案
您的问题是您正在检查已解析的参数以查找键“checkout”,但 Magento 实际上已将该参数存储为 0 => 'checkout'
。我建议改用这段代码:
模板
$this->getAddToCartUrl($_product, array('checkout' => true))
观察者
$observer->getRequest()->getParam('checkout')
确保在测试时清除/禁用缓存。
关于php - Magento 1.9 添加参数以添加到购物车 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857141/