创建函数addAction
的cartController.php
(app/code/core/checkout/controllers/
)到myaddAction()的副本。
下面添加结束view.phtml (app/design/frontend/your package/your template/template/catalog/product/view.phtml)
<script type="text/javascript">
//<![CDATA[
productAddToCartForm.submit = function(button, url){
replaceURL = url.replace("add/","myadd/");
if(this.validator) {
var nv = Validation.methods;
delete Validation.methods['required-entry'];
delete Validation.methods['validate-one-required'];
delete Validation.methods['validate-one-required-by-name'];
// Remove custom datetime validators
for (var methodName in Validation.methods) {
if (methodName.match(/^validate-datetime-.*/i)) {
delete Validation.methods[methodName];
}
}
if (this.validator.validate()) {
if (url) {
this.form.action = replaceURL;
}
this.form.submit();
}
Object.extend(Validation.methods, nv);
}
}.bind(productAddToCartForm);
//]]>
</script>
添加结账按钮addtocart.phhtml (app/design/frontend/your package/your template/template/catalog/product/view
)
<button type="button" title="<?php echo $buttonTitle ?>" class="button btn-cart" onclick="productAddToCartForm.submitmy(this)"><span><span><?php echo "Checkout"; ?></span></span></button>
正如我告诉你复制的addAction到mycartAction 变化
$this->_goBack();
至
$this->_redirect('checkout/onepage');
return;
endof
if (!$cart->getQuote()->getHasError()){
$message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
$this->_getSession()->addSuccess($message);
}
添加
感谢
Checkout按钮。这是一个很好的解决方案。我想让它在自定义控制器中运行,这正是我认为你现在所建议的,但我只是添加了一些类似的逻辑到默认的addAction。如果他们点击我的结账按钮,我只是传递了一个附加参数,如果设置了附加参数,它会重定向到“checkout/onepage”。但是我只是把它添加到了核心中,我不喜欢这样做,但是我无法将它加入到模块中。是否有一个单独的控制器比其他参数更好?我想如果它在本地代码池,这将是有意义的 – RattanOutdoorFurnitureDev