Ich habe erfolgreich eine benutzerdefinierte Versandmethode wie diese hinzugefügt:
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;
}
Es wird auf der Checkout-Seite angezeigt, aber ich möchte benutzerdefinierte Textbereichseingabedaten anzeigen, wenn der Benutzer meine benutzerdefinierte Versandmethode auswählt, und ich kann die benutzerdefinierten Eingabetextbereichsdaten speichern.
Ich möchte, dass es so aussieht:
Antworten:
Um ein benutzerdefiniertes Eingabefeld nach Auswahl Ihrer benutzerdefinierten Versandmethode anzuzeigen, müssen Sie einen js-Block hinzufügen, der das Ereignis für die Auswahlmethode abonniert:
Fügen Sie dem Layout checkout_index_index.xml eine benutzerdefinierte HTML-Datei hinzu
Fügen Sie dann den nächsten Block zu Ihrer HTML-Datei hinzu:
Mit dem obigen Code fügen Sie die gewünschte Eingabe unter Ihrer benutzerdefinierten Versandmethode hinzu.
Danach müssen Sie ein Plugin erstellen, um Ihren benutzerdefinierten Wert zu speichern.
Ich hoffe es hilft dir. Grüße, Pablo
quelle