백엔드에서 거리 주소를 3 줄로 설정했습니다.
각 필드에 다른 자리 표시자를 넣고 싶습니다.
- 거리
- 건물 / 아파트
- 지역
이런 방식으로 사용자는보다 체계적인 방식으로 데이터를 입력 할 수 있습니다.
비슷한 질문이 여기에 있습니다.
마 젠토 2-레이아웃 xml / ui 인수를 사용하여 결제 양식의 주소에 영향을 미치는 방법
그러나 답은 거리 주소 필드에 자리 표시자를 포함하는 솔루션을 제공하지 않습니다 .
내가 달성하고자하는 것은 각 주소 필드마다 다른 자리 표시자를 설정하는 것 입니다 .
내 코드 :
app / code / 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>
app / code / Jsp / Placeholder / registration.php :
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Jsp_Placeholder',
__DIR__
);
app / code / 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>
app / code / Jsp / Placeholder / Plugin / Checkout / Block / Checkout / AttributeMerger / 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;
}
}