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

标签 php magento

我正在安装 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/

相关文章:

magento - "There was a problem with reindexing process."产品导入后

php - Magento - 需要为两个页面强制使用 HTTP,而网站的其余部分则强制使用 HTTPS

Magento Varnish 松节油通过 block (不要缓存 block )

php - 使用php以正则表达式条件搜索数据库

php - 上传时将文件重命名为 input.mp4 不起作用

php - 查询数据库来自

magento - 优惠券代码 Magento 1.9.x 错误

jquery - 花式框覆盖在 IE8 中不起作用

php 文件显示不正确

java - 重力形式签名 - 从 PHP 到 java