ম্যাজেন্টো 2: চেকআউটে রাস্তার ক্ষেত্রগুলিতে স্থানধারক পাঠ্য কীভাবে যুক্ত করবেন?


10

ব্যাক-এন্ডে আমি রাস্তার ঠিকানাটিতে 3 টি লাইন রেখেছি।

আমি প্রতিটি ক্ষেত্রে একটি পৃথক স্থানধারক রাখতে চাই:

  • রাস্তা
  • বিল্ডিং / অ্যাপার্টমেন্ট
  • ফোন

এইভাবে ব্যবহারকারী আরও কাঠামোগত উপায়ে ডেটা প্রবেশ করতে পারেন।

একটি অনুরূপ প্রশ্ন এখানে পাওয়া যাবে:

ম্যাজেন্টো 2 - লেআউট এক্সএমএল / ইউআই যুক্তি সহ চেকআউট ফর্মগুলিতে রাস্তার ঠিকানা কীভাবে প্রভাবিত করবেন affect

তবে উত্তরগুলি রাস্তার ঠিকানা ক্ষেত্রগুলিতে স্থানধারীদের অন্তর্ভুক্ত করার জন্য কোনও সমাধান সরবরাহ করে না ।

আমি যা অর্জন করতে চাই তা প্রতিটি রাস্তার ঠিকানা ক্ষেত্রের জন্য পৃথক স্থানধারক সেট করে ।

আমার কোড:

অ্যাপ্লিকেশন / কোড / জেএসপি / স্থানধারক / ইত্যাদি / মডিউল.এক্সএমএল:

<?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>

অ্যাপ্লিকেশন / কোড / জেএসপি / প্লেসহোল্ডার / রেজিস্ট্রেশন.এফপি:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
  \Magento\Framework\Component\ComponentRegistrar::MODULE,
  'Jsp_Placeholder',
  __DIR__
);

অ্যাপ্লিকেশন / কোড / জেএসপি / স্থানধারক / ইত্যাদি / 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>

অ্যাপ্লিকেশন / কোড / জেএসপি / প্লেসহোল্ডার / প্লাগইন / চেকআউট / ব্লক / চেকআউট / অ্যাট্রিবিউটমার্জার / প্লাগইন.এফপি:

<?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. মডিউল সক্ষম করুন: সুডো বিন / ম্যাজেন্টো মডিউল: জেএসপি_প্লেসোল্ডার সক্ষম করুন 2. আপগ্রেড সেটআপ: সুডো বিন / ম্যাজেন্টো সেটআপ: আপগ্রেড 3. সংকলন সেটআপ: সুডো বিন / ম্যাজেন্টো সেটআপ: ডি: সংকলন করুন আপনি এই সব কি?
— আশীষ জাগানানী

এই কোডটি ম্যাজেন্টো ২
— আশীষ জাগানানী

উত্তর:


14

আপনার যে কোনও কাস্টম মডিউলে এই ফাইলটি যুক্ত করুন:

অ্যাপ্লিকেশন / কোড / বিক্রেতা / moduleName জন্য / 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="Vendor_ModuleName" setup_version="2.0.0" />
</config>

অ্যাপ্লিকেশন / কোড / বিক্রেতা / moduleName / registration.php

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
  \Magento\Framework\Component\ComponentRegistrar::MODULE,
  'Vendor_ModuleName',
  __DIR__
);

অ্যাপ্লিকেশন / কোড / বিক্রেতা / moduleName জন্য / 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="Vendor\ModuleName\Plugin\Checkout\Block\Checkout\AttributeMerger\Plugin"/>
  </type>
</config>

বিক্রেতার \ moduleName \ প্লাগইন \ চেকআউট \ ব্লক \ চেকআউট \ AttributeMerger \ Plugin.php

<?php
namespace Vendor\ModuleName\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'] = __('Flat No/House No/Building No');
      $result['street']['children'][1]['placeholder'] = __('Street Address');
      $result['street']['children'][2]['placeholder'] = __('Landmark');
    }

    return $result;
  }
}

আমি di.xmlফাইলটি কোথায় যুক্ত করব ? আমার কোনও কাস্টম মডিউল নেই
— লুইস গার্সিয়া

আমার আপডেট উত্তর চেক করুন।
— আশীষ জাগানানী

ধন্যবাদ, আমি আপনার নির্দেশাবলী অনুসরণ করে মডিউলটি তৈরি করেছি তবে স্থানধারকরা এখনও প্রদর্শিত হবে না। মডিউলটি সক্ষম, আমি ক্যাশে পরিষ্কার করি, এবং সেটআপ চালাই: আপগ্রেড করি। ভুল হতে পারে কি কোন ধারণা আছে?
— লুইস গার্সিয়া

আপনি কী চেষ্টা করেছেন তা আপনার প্রশ্নের মধ্যে মডিউলের সমস্ত ফাইলের সঠিক কোডটি লিখুন।
— আশীষ জগনানি

আমি চেষ্টা করেছি কোডটি দিয়ে আমার প্রশ্নটি কেবল আপডেট করেছি
— লুইস গার্সিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.