在后端,我将街道地址设置为3行。
我想在每个字段中放置一个不同的占位符:
- 街
- 建筑/公寓
- 区域
这样,用户可以以更加结构化的方式输入数据。
在这里可以找到类似的问题:
Magento 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;
}
}
添加此模块后,您已执行以下步骤:1.启用模块:sudo bin / magento模块:启用Jsp_Placeholder 2.升级设置:sudo bin / magento setup:upgrade 3.编译设置:sudo bin / magento setup:di:compile有你做了所有这些吗?
—
Ashish Jagnani
这些代码是完全符合默认结算地址的形式工作在Magento 2
—
阿希什Jagnani