Я успешно добавил пользовательский метод доставки, как это:
приложение / и т.д. / 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>
Приложение / код / пространство имен / модуль / модель / 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;
}
Он отображается на странице оформления заказа, но я хочу показать пользовательские входные данные текстовой области, когда пользователь выбирает мой пользовательский метод доставки, и я могу сохранить данные пользовательской текстовой области ввода.
вот как я хочу, чтобы это выглядело так:
Ответы:
Чтобы отобразить настраиваемое поле ввода после выбора пользовательского метода доставки, необходимо добавить блок js, подписывающийся на событие выбора метода:
Добавьте пользовательский phtml в макет checkout_index_index.xml
Затем добавьте следующий блок в ваш phtml:
С помощью приведенного выше кода, вы добавите желаемый ввод ниже вашего пользовательского метода доставки.
После этого вам нужно будет создать плагин для сохранения вашего собственного значения.
Я надеюсь, что это поможет вам. С уважением, Пабло
источник