সামান্য কাস্টম কোড সহ প্রাথমিক যুক্তি বাস্তবায়ন সম্ভব:
এর জন্য একটি পর্যবেক্ষক লিখুন controller_predispatch_customer_account_loginPost
, পোস্ট ইমেল ঠিকানা ( username
) কোনও ইমেল ঠিকানার মতো দেখাচ্ছে না কিনা তা পরীক্ষা করে দেখুন। এক্ষেত্রে গ্রাহক নম্বরে গ্রাহককে সন্ধান করুন এবং খুঁজে পাওয়া গ্রাহকের প্রকৃত ইমেল ঠিকানার সাথে পোস্টের ডেটাতে ব্যবহারকারীর নাম ক্ষেত্রটি প্রতিস্থাপন করুন।
উদাহরণস্বরূপ পর্যবেক্ষক কোড:
$request = $observer->getControllerAction()->getRequest();
$username = $request->getPost('username');
if (false === strpos($username, '@')) {
$customer = Mage::getModel('customer/customer')
->getCollection()
->addAttributeToFilter('customer_number', $username)
->getFirstItem();
if ($customer && $customer->getEmail()) {
$request->setPost('username', $customer->getEmail());
}
}
তারপরে controller_postdispatch_customer_account_loginPost
, সেশনটিতে ইমেল ঠিকানাটি যদি সেট করা থাকে তবে গ্রাহকের নম্বরে ফিরিয়ে দিন। অন্যথায় ব্যর্থ লগইনগুলিতে ত্রুটি বার্তাগুলিতে সংখ্যার পরিবর্তে ইমেল ঠিকানা থাকবে।
উদাহরণস্বরূপ পর্যবেক্ষক কোড:
$emailAddress = Mage::getSingleton('customer/session')->getUsername();
if ($emailAddress) {
$customerNumber = Mage::getModel('customer/customer')->loadByEmail($emailAddress)
->getCustomerNumber();
}
Mage::getSingleton('customer/session')->setUsername($customerNumber);
অন্যান্য বিষয় বিবেচনা করুন:
- "ভুলে যাওয়া পাসওয়ার্ড" ফর্মটিতে একই যুক্তি প্রয়োগ করুন
- আপনি বিল্ট ইন
increment_id
গ্রাহক নম্বর হিসাবে ব্যবহার করতে চান কিনা তা সিদ্ধান্ত নিন , যা আপনি গ্রাহক কনফিগারেশনের অধীনে সিস্টেম কনফিগারেশনে সক্ষম করতে পারবেন > নতুন অ্যাকাউন্ট বিকল্প তৈরি করুন> মানব-বান্ধব গ্রাহক আইডি উত্পন্ন করুন