Thực hiện phương thức vận chuyển tùy chỉnh đã chọn hiển thị văn bản nhập liệu tùy chỉnh khi thanh toán onepage


9

Tôi đã thêm thành công phương thức giao hàng tùy chỉnh như thế này:

ứng dụng / etc / config.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
    <default>
        <carriers>
            <lime>
                <active>1</active>
                <allowed_methods>delivery</allowed_methods>
                <methods>delivery</methods>
                <type>NAMESPACE</type>
                <sallowspecific>0</sallowspecific>
                <model>Namespace\Module\Model\Carrier</model>
                <name>Namespace_Module custom Shipping</name>
                <title>Namespace_Module custom Shipping</title>
                <handling_type>F</handling_type>
            </lime>
        </carriers>
    </default>
</config>

ứng dụng / mã / Không gian tên / Mô-đun / Model / Carrier.php

public function collectRates(RateRequest $request)
{
    if (!$this->getConfigFlag('active')) {
        return false;
    } 
    $result = $this->_rateResultFactory->create(); 
    $method = $this->_rateMethodFactory->create(); 
    $method->setCarrier('HILO');
    $method->setCarrierTitle('HILO'); 
    $method->setMethod('Fast');
    $method->setMethodTitle('Fast'); 
    $amount = $this->getConfigData('price'); 
    $method->setPrice($amount);
    $method->setCost($amount); 
    $result->append($method);
    return $result;
}

Nó hiển thị tại trang thanh toán, nhưng tôi muốn hiển thị dữ liệu nhập vùng văn bản tùy chỉnh khi người dùng chọn phương thức giao hàng tùy chỉnh của tôi và tôi có thể lưu dữ liệu vùng văn bản nhập tùy chỉnh.

Đây là những gì tôi muốn nó trông giống như:

nhập mô tả hình ảnh ở đây


2
xin chào, bạn đã thêm lĩnh vực này như thế nào? bạn có thể vui lòng giúp tôi lấy mã không?
Mujahidh

Câu trả lời:


2

Để hiển thị trường nhập liệu tùy chỉnh sau khi chọn phương thức giao hàng tùy chỉnh của bạn, bạn phải thêm một khối js đăng ký để chọn sự kiện phương thức:

Thêm một phtml tùy chỉnh vào bố cục checkout_index_index.xml

Sau đó thêm khối tiếp theo vào phtml của bạn:

<script type="text/javascript">
    require([
        'jquery',
        'Magento_Checkout/js/model/quote',
    ], function (jQuery, quote) {
        jQuery(document).ready(function () {
            quote.shippingMethod.subscribe(function (value) {
                if (quote.shippingMethod() && quote.shippingMethod().carrier_code == 'your_custom_shipping_method_code') {
                    var customBlock = "<div class ='custom-information'><input type="text" id="your_custom_id"></div>";
                    if((!$('.custom-information').length > 0)) {
                        $('#checkout-shipping-method-load').append(customBlock);
                    }
                });
            });
        });
    });
</script>

Với mã trên, bạn sẽ thêm đầu vào bạn muốn bên dưới phương thức giao hàng tùy chỉnh của bạn.

Sau đó, bạn phải tạo một plugin để lưu giá trị tùy chỉnh của mình.

Kiểm tra: Magento \ Checkout \ Model \ GuestShippingIn informationQuản lý

Tôi hy vọng nó sẽ giúp bạn. Trân trọng, Pablo


1
bạn có thể vui lòng giải thích thêm một chút được không
Mujahidh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.