我有一个带有两个选项的可配置产品,我想在该页面上添加一个空购物车按钮来清空项目:
我已经从购物车页面复制了按钮并嵌入了它,但它不起作用。请建议一种添加按钮的方法。
<button type="submit" name="update_cart_action" value="empty_cart" title="<?php echo $this->__('Empty Cart'); ?>" class="button2 btn-empty" id="empty_cart_button"><span><span><?php echo $this->__('Empty Cart'); ?></span></span></button>
您需要创建一个新控制器,然后将控制器的操作添加到刚刚创建的按钮中。
然后创建一个模型来清空当前项$quote
。这是基本理论。
Inchoo创建了类似于您想要的东西 在这里查看。
如果你看一下Mage_Checkout_CartController
的updatePostAction
函数,你确实应该能够按照你想要的方式做到这一点。但是现在您的按钮没有链接到表单,因此它不执行任何操作。
但是,您还需要一个有效的表单密钥才能正常工作。
Mage_Checkout_CartController
摘录 :
public function updatePostAction()
{
if (!$this->_validateFormKey()) {
$this->_redirect('*/*/');
return;
}
$updateAction = (string)$this->getRequest()->getParam('update_cart_action');
switch ($updateAction) {
case 'empty_cart':
$this->_emptyShoppingCart();
break;
case 'update_qty':
$this->_updateShoppingCart();
break;
default:
$this->_updateShoppingCart();
}
$this->_goBack();
}
所以这应该是有效的:
<form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
<?php echo $this->getBlockHtml('formkey'); ?>
<button type="submit" name="update_cart_action" value="empty_cart" title="<?php echo $this->__('Empty Cart'); ?>" class="button2 btn-empty" id="empty_cart_button"><span><span><?php echo $this->__('Empty Cart'); ?></span></span></button>
</form>