单击订购订单按钮在Magento 1中的结帐/OnePage中时如何停止重定向



我是Magento的新手。单击"位置订单"时,我想停止重定向操作。我不想重定向,而是要在定位订单按钮下放置一个块。我该怎么做?

预先感谢

在OnePageCheckout中,当您单击"位置订单"时,请调用Skin/frontend/base/base/base/default/js/opCheckout.js file.js fime the Review.prototype.save((函数。看起来像

var Review = Class.create();
Review.prototype = {
initialize: function(saveUrl, successUrl, agreementsForm){
    this.saveUrl = saveUrl;
    this.successUrl = successUrl;
    this.agreementsForm = agreementsForm;
    this.onSave = this.nextStep.bindAsEventListener(this);
    this.onComplete = this.resetLoadWaiting.bindAsEventListener(this);
},
save: function(){
    if (checkout.loadWaiting!=false) return;
    checkout.setLoadWaiting('review');
    var params = Form.serialize(payment.form);
    if (this.agreementsForm) {
        params += '&'+Form.serialize(this.agreementsForm);
    }
    params.save = true;
    var request = new Ajax.Request(
        this.saveUrl,
        {
            method:'post',
            parameters:params,
            onComplete: this.onComplete,
            onSuccess: this.onSave,
            onFailure: checkout.ajaxFailure.bind(checkout)
        }
    );
},

该函数对您在文件应用程序/code/core/core/mage/nockout/controllers/onepagecontroller.php中找到的ajax调用。如果您浏览该功能,您会发现这里的Magento将重定向变量设置为Ajax调用的响应主体。

if (isset($redirectUrl)) {
        $result['redirect'] = $redirectUrl;
    }
      $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));

现在,您知道可以通过从响应主体中删除该重定向变量来停止重定向。如果要添加任何其他块,则可以在Review.Prototype.save((函数中进行操作。

**注意:您应该始终重写本地池中的核心文件,不建议修改核心文件**

您可以覆盖这样的巨大块:

design frontend base base default layout nessepace_module.xml

<checkout_onepage_review>
    <remove name=" checkout.onepage.review.button"/>
    <reference name="root">
        <block type="namespace_module/checkout_onepage_review_button" name="tipping.checkout.onepage.review.button" as="button" template="moduelname/checkout/onepage/review/button.phtml"/>
    </reference>
</checkout_onepage_review>

模板文件: design frontend base base default template moduelname checkout onepage onepage onews button button.phtml

  <button type="button"
        title="<?php echo $this->__('Place Order') ?>"
        class="button btn-checkout" style="clear:both"
        onclick="submitCustomPlaceOrder();">
    <span>
        <span><?php echo $this->__('Place Order') ?></span>
    </span>
</button>

现在,您可以在submitCustomplaceOrder((函数中写下逻辑:

function submitCustomPlaceOrder(){
    //you logic here
               if(condition){
            reviewTmp.save();
   }
}

祝你好运!

最新更新