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:
Jawaban:
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:
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.
Saya harap ini membantu Anda. Salam, Pablo
sumber