Ở back-end Tôi đã đặt địa chỉ đường phố có 3 dòng.
Tôi muốn đặt một trình giữ chỗ khác nhau trong mỗi lĩnh vực:
- đường phố
- Tòa nhà / Chung cư
- Khu vực
Bằng cách này, người dùng có thể nhập dữ liệu theo cách có cấu trúc hơn.
Một câu hỏi tương tự có thể được tìm thấy ở đây:
Tuy nhiên, câu trả lời không cung cấp giải pháp bao gồm giữ chỗ trong các trường địa chỉ đường phố.
Những gì tôi muốn đạt được là đặt một trình giữ chỗ khác nhau cho mỗi trường địa chỉ đường phố .
Mã của tôi:
ứng dụng / mã / Jsp / Placeholder / etc / module.xml:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Jsp_Placeholder" setup_version="2.0.0" />
</config>
ứng dụng / mã / Jsp / giữ chỗ / đăng ký.php:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Jsp_Placeholder',
__DIR__
);
ứng dụng / mã / Jsp / Placeholder / etc / di.xml:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\Block\Checkout\AttributeMerger">
<plugin name="shippingAddress" type="Jsp\Placeholder\Plugin\Checkout\Block\Checkout\AttributeMerger\Plugin"/>
</type>
</config>
ứng dụng / mã / Jsp / Placeholder / Plugin / Checkout / Block / Checkout / AttributionMerger / Plugin.php:
<?php
namespace Jsp\Placeholder\Plugin\Checkout\Block\Checkout\AttributeMerger;
class Plugin {
public function afterMerge(\Magento\Checkout\Block\Checkout\AttributeMerger $subject, $result)
{
if (array_key_exists('street', $result)) {
$result['street']['children'][0]['placeholder'] = __('Calle y número exterior');
$result['street']['children'][1]['placeholder'] = __('Interior / Edificio / Depto.');
$result['street']['children'][2]['placeholder'] = __('Colonia');
}
return $result;
}
}