Magento2 checkout 结账页面地址行数。其他输入框没有 placeholder、 label

本文介绍如何解决Magento2结账页面中送货地址显示问题,通过复写AttributeMerger类来为多行地址字段添加label和数字标记,并调整输入框的placeholder及label属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

magento2 结账地面的送货地址两行的时候没有数字,第二第三行的 没有 label,没有数字

本文参考 github 参考

复写类

/**
 * Fields attribute merger.
 */
class AttributeMerger extends \Magento\Checkout\Block\Checkout\AttributeMerger
{
    protected function getMultilineFieldConfig($attributeCode, array $attributeConfig, $providerName, $dataScopePrefix)
    {
        $lines = [];
        unset($attributeConfig['validation']['required-entry']);
        for ($lineIndex = 0; $lineIndex < (int)$attributeConfig['size']; $lineIndex++) {
            $isFirstLine = $lineIndex === 0;
            $line = [
                'label' => __("%1 %2", $attributeConfig['label'], $lineIndex + 1),
                'component' => 'Magento_Ui/js/form/element/abstract',
                'config' => [
                    // customScope is used to group elements within a single form e.g. they can be validated separately
                    'customScope' => $dataScopePrefix,
                    'template' => 'ui/form/field',
                    'elementTmpl' => 'ui/form/element/input',
                    'placeholder'=>__('Enter')
                ],
                'dataScope' => $lineIndex,
                'provider' => $providerName,
                'validation' => $isFirstLine
                    ? array_merge(
                        ['required-entry' => (bool)$attributeConfig['required']],
                        $attributeConfig['validation']
                    )
                    : $attributeConfig['validation'],
                'additionalClasses' => $isFirstLine ? 'field' : 'additional'

            ];
            if ($isFirstLine && isset($attributeConfig['default']) && $attributeConfig['default'] != null) {
                $line['value'] = $attributeConfig['default'];
            }
            $lines[] = $line;
        }
        return [
            'component' => 'Magento_Ui/js/form/components/group',
            'label' => $attributeConfig['label'],
            'required' => (bool)$attributeConfig['required'],
            'dataScope' => $dataScopePrefix . '.' . $attributeCode,
            'provider' => $providerName,
            'sortOrder' => $attributeConfig['sortOrder'],
            'type' => 'group',
            'config' => [
                'template' => 'ui/group/group',
                'additionalClasses' => $attributeCode
            ],
            'children' => $lines,
        ];
    }
}

 

其他输入框没有 placeholder、 label

checkout_index_index.xml

sortOrder 前後排序,有些在PHP

config 设置 label 和placeholder

<item name="telephone" xsi:type="array">                                                                 
   <item name="sortOrder" xsi:type="string">65</item>                                                                   
  <item name="config" xsi:type="array">                                                                          
   <item name="label" xsi:type="string" translate="true"></item>                                                                       
   <item name="placeholder" xsi:type="string" translate="true">Phone Number</item>                                                                       
    <item name="tooltip" xsi:type="array">                                                                        
      <item name="description" xsi:type="string" translate="true">For delivery questions. 
     </item>                                                                          
     </item>                                                                    
   </item>                                                                 
 </item>
                                                                  
  <item name="country_code" xsi:type="array">                                                             
      <item name="sortOrder" xsi:type="string">64</item>                                                              
     <item name="config" xsi:type="array">                                                                  
         <item name="label" xsi:type="string" translate="true">Phone Number</item>                                                                  
         <item name="placeholder" xsi:type="string" translate="true">Country Code</item>                                                                    
     </item>                                                             
 </item>
                                                                   
 <item name="city" xsi:type="array">                                                                 
     <item name="config" xsi:type="array">                                                                  
      <item name="placeholder" xsi:type="string" translate="true">Enter</item>                                                               
      </item>                                                              
 </item>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值