Buat metode pengiriman khusus yang dipilih menunjukkan teks input kustom di checkout di halaman

9

Saya berhasil menambahkan metode pengiriman khusus seperti ini:

app / 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>

app / code / Namespace / Module / 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;
}

Itu muncul di halaman checkout, tetapi saya ingin menunjukkan data input area teks khusus ketika pengguna memilih metode pengiriman kustom saya, dan saya dapat menyimpan data area input teks kustom.

seperti inilah yang saya inginkan:

masukkan deskripsi gambar di sini

nortonuser
sumber
2
hai, bagaimana Anda menambahkan bidang ini? bisakah Anda membantu saya mendapatkan kode?
Mujahidh

Jawaban:

2

Untuk menampilkan bidang input khusus setelah memilih metode pengiriman kustom Anda, Anda harus menambahkan blok js berlangganan untuk memilih acara metode:

Tambahkan phtml khusus ke tata letak checkout_index_index.xml

Kemudian tambahkan blok berikutnya ke phtml Anda:

<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>

Dengan kode di atas, Anda akan menambahkan input yang Anda inginkan di bawah metode pengiriman kustom Anda.

Setelah itu, Anda harus membuat plugin untuk menyimpan nilai khusus Anda.

Periksa: Magento \ Checkout \ Model \ GuestShippingInformationManagement

Saya harap ini membantu Anda. Salam, Pablo

Pablo Garcia
sumber
1
dapatkah Anda jelaskan hal ini lebih lanjut lagi
Mujahidh