text 跳过运送方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 跳过运送方式相关的知识,希望对你有一定的参考价值。


https://www.aitoc.com/magentomods-configurable-checkout.html

https://marketplace.magento.com/chandankumarsingh-skip-shipping-method.html

https://codeday.me/en/qa/20190315/15155.html

https://magento2.atlassian.net/wiki/spaces/m1wiki/pages/14024866/Removing+the+Shipping+Method+from+One-Page+Checkout

**Magento: Skip Shipping Method from onepage checkout**

First override following files(i.e. in local directory) rather than changing the core:
1) app/code/core/Mage/Checkout/Block/Onepage/Onepage.php
2) app/code/core/mage/checkout/controller/Onepagecontrollers.php
3) app/code/core/Mage/Sales/Model/Service/Quote.php
4) app/design/frontend/base/default/template/checkout/onepage/progress.phtml
5) app/code/core/Mage/Sales/Model/Service/Quote.php

Once done follow the below steps:

**Step 1: app/code/local/Mage/Checkout/Block/Onepage.php**

Change the line:
$stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'review');

In Magento 1.7+ you will find $stepCodes in for each just replace with below code 
with:
$stepCodes = array('billing', 'shipping', 'payment', 'review');


**Step 2: app/code/local/Mage/Checkout/controller/Onepagecontrollers.php**

Change the line:
protected $_sectionUpdateFunctions = array(
'payment-method' => '_getPaymentMethodsHtml',
'shpping-method' => '_getShippingMeghtoHtml',
'review' => '_getReviewHtml',
);

with:
protected $_sectionUpdateFunctions = array(
'payment-method' => '_getPaymentMethodsHtml',
'review' => '_getReviewHtml',
);


**Step 3: app/code/local/Mage/Checkout/controller/Onepagecontrollers.php**

Change saveBillingAction() function with:

public function saveBillingAction()
{
if ($this->_expireAjax()) {
return;
}
if ($this->getRequest()->isPost()) {
$postData = $this->getRequest()->getPost('billing', array());
$data = $this->_filterPostData($postData);
$data = $this->getRequest()->getPost('billing', array());
$customerAddressId = $this->getRequest()->getPost('billing_address_id', false);

if (isset($data['email'])) {
$data['email'] = trim($data['email']);
}
$result = $this->getOnepage()->saveBilling($data, $customerAddressId);

if (!isset($result['error'])) {
/* check quote for virtual */
if ($this->getOnepage()->getQuote()->isVirtual()) {
$result['goto_section'] = 'payment';
$result['update_section'] = array(
'name' => 'payment-method',
'html' => $this->_getPaymentMethodsHtml()
);
} elseif (isset($data['use_for_shipping']) && $data['use_for_shipping'] == 1) {
$result['goto_section'] = 'payment';
$result['update_section'] = array(
'name' => 'payment-method',
'html' => $this->_getPaymentMethodsHtml()
);

$result['allow_sections'] = array('shipping');
$result['duplicateBillingInfo'] = 'true';
} else {
$result['goto_section'] = 'shipping';
}
}

$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
}
}

Change saveShippingAction() function with:

public function saveShippingAction()
{
if ($this->_expireAjax()) {
return;
}
if ($this->getRequest()->isPost()) {
$data = $this->getRequest()->getPost('shipping', array());
$customerAddressId = $this->getRequest()->getPost('shipping_address_id', false);
$result = $this->getOnepage()->saveShipping($data, $customerAddressId);

if (!isset($result['error'])) {
$result['goto_section'] = 'payment';
$result['update_section'] = array(
'name' => 'payment-method',
'html' => $this->_getPaymentMethodsHtml()
);
}
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
}
}

**Step 4: app/code/local/Mage/Sales/Model/Service/Quote.php**

Change _validate() function with:

protected function _validate()
{
$helper = Mage::helper('sales');
if (!$this->getQuote()->isVirtual()) {
$address = $this->getQuote()->getShippingAddress();
$addressValidation = $address->validate();
if ($addressValidation !== true) {
Mage::throwException(
$helper->__('Please check shipping address information. %s', implode(' ', $addressValidation))
);
}
}

$addressValidation = $this->getQuote()->getBillingAddress()->validate();
if ($addressValidation !== true) {
Mage::throwException(
$helper->__('Please check billing address information. %s', implode(' ', $addressValidation))
);
}

if (!($this->getQuote()->getPayment()->getMethod())) {
Mage::throwException($helper->__('Please select a valid payment method.'));
}

return $this;
}


**Step 5: app/design/frontend/default/default/template/checkout/onepage/progress.phtml**

Remove the shipping method block.

**Step 6: app/locale/en_US/template/email/sales/order_new.html**

Remove the shipping method block(i.e. {{var order.getShippingDescription()}}).

以上是关于text 跳过运送方式的主要内容,如果未能解决你的问题,请参考以下文章

text 鞅 - 模拟器(仅跳过)

text 投注和2跳过

text [archlinux] yaourt跳过有效性检查

尝试取消嵌套 Text[] 类型的列正在跳过为空的列 - Postgres

设计模式之IOC模式

安全地运送名称[关闭]