ในส่วนหลังฉันได้กำหนดที่อยู่ให้มี 3 บรรทัด
ฉันต้องการวางตัวแทนที่แตกต่างกันในแต่ละฟิลด์:
- ถนน
- อาคาร / อพาร์ทเม้นท์
- พื้นที่
วิธีนี้ผู้ใช้สามารถป้อนข้อมูลในรูปแบบที่มีโครงสร้างมากขึ้น
คำถามที่คล้ายกันสามารถพบได้ที่นี่:
Magento 2 - วิธีส่งผลกระทบต่อที่อยู่ในรูปแบบเช็คเอาต์โดยมีอาร์กิวเมนต์ xml / ui ของโครงร่าง
อย่างไรก็ตามคำตอบไม่ได้มีวิธีการแก้ปัญหาที่จะรวมตัวยึดในฟิลด์ที่อยู่
สิ่งที่ฉันต้องการที่จะบรรลุคือการตั้งค่าตัวยึดที่แตกต่างกันสำหรับแต่ละเขตข้อมูลที่อยู่บนถนน
รหัสของฉัน:
แอป / รหัส / Jsp / ตัวยึด / 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__
);
แอป / รหัส / Jsp / ตัวยึด / 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>
แอป / รหัส / Jsp / ตัวยึด / ปลั๊กอิน / ชำระเงิน / บล็อก / ชำระเงิน / 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;
}
}