ทำให้วิธีการจัดส่งแบบกำหนดเองที่เลือกแสดงการป้อนข้อความแบบกำหนดเองเมื่อทำการชำระเงินแบบ onepage


9

ฉันได้เพิ่มวิธีการจัดส่งแบบกำหนดเองเช่นนี้:

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 / รหัส / Namespace / โมดูล / รุ่น / 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;
}

มันปรากฏขึ้นที่หน้าเช็คเอาต์ แต่ฉันต้องการแสดงข้อมูลพื้นที่ป้อนข้อความที่กำหนดเองเมื่อผู้ใช้เลือกวิธีการจัดส่งที่กำหนดเองของฉันและฉันสามารถบันทึกข้อมูลพื้นที่ข้อความที่กำหนดเองได้

นี่คือสิ่งที่ฉันต้องการให้มันดูเหมือน:

ป้อนคำอธิบายรูปภาพที่นี่


2
สวัสดีคุณเพิ่มฟิลด์นี้ได้อย่างไรคุณช่วยฉันได้รหัสหน่อยได้ไหม
Mujahidh

คำตอบ:


2

ในการแสดงฟิลด์ป้อนข้อมูลที่กำหนดเองหลังจากเลือกวิธีการจัดส่งแบบกำหนดเองของคุณคุณต้องเพิ่มบล็อก js ที่สมัครรับข้อมูลเพื่อเลือกกิจกรรมของเมธอด:

เพิ่มphtml ที่กำหนดเองเพื่อจัดวางcheckout_index_index.xml

จากนั้นเพิ่มบล็อกถัดไปใน phtml ของคุณ:

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

ด้วยโค้ดด้านบนคุณจะเพิ่มอินพุตที่คุณต้องการด้านล่างวิธีการจัดส่งแบบกำหนดเองของคุณ

หลังจากนั้นคุณควรสร้างปลั๊กอินเพื่อบันทึกค่าที่คุณกำหนดเอง

ตรวจสอบ: Magento \ Checkout \ Model \ GuestShipping ข้อมูลการจัดการ

ฉันหวังว่ามันจะช่วยคุณ ขอแสดงความนับถือ Pablo


2
คุณช่วยอธิบายเพิ่มเติมอีกหน่อยได้ไหม
Mujahidh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.