গ্রাহকদের পক্ষে কি কোনও ইমেল ঠিকানার পরিবর্তে গ্রাহক নম্বর দিয়ে লগইন করা সম্ভব?


12

আমি একটি লগইন পৃষ্ঠা তৈরি করতে চাই যা তাদের ইমেল ঠিকানার পরিবর্তে একটি নির্ধারিত গ্রাহক নম্বর ব্যবহার করে। আমার ব্যবসায়ের উপায়টি কীভাবে পৃথক ইকমস প্ল্যাটফর্মে সেট আপ হয়, তারা গ্রাহক নম্বর দিয়ে তাদের অ্যাকাউন্টটি অ্যাক্সেস করে কারণ তারা এক অ্যাকাউন্টের একাধিক অ্যাকাউন্ট পরিচালক। আমি তাদের জন্য অ্যাকাউন্ট তৈরি করি এবং তারপরে একটি পাসওয়ার্ড সহ একটি গ্রাহক নম্বর, যা তারা লগইন করতে ব্যবহার করে তা বরাদ্দ করি।

কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে।


আমি ভয় করি যে এটি এই সাইটের জন্য খুব বোর্ড। হ্যাঁ এটি সম্ভব তবে এই কাজটি পেতে এখানে অনেকগুলি রাইটিং কোড এবং টেমপ্লেট ইত্যাদির পরিবর্তন হবে।
ডেভিড ম্যানার্স

আপনাকে ধন্যবাদ ডেভিড, যদিও আমি এটি হতে পারি তবে এটি যদিও শট করার মতো হতে পারে।
অ্যালেক্স ডাব্লুজি

উত্তর:


8

সামান্য কাস্টম কোড সহ প্রাথমিক যুক্তি বাস্তবায়ন সম্ভব:

এর জন্য একটি পর্যবেক্ষক লিখুন 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গ্রাহক নম্বর হিসাবে ব্যবহার করতে চান কিনা তা সিদ্ধান্ত নিন , যা আপনি গ্রাহক কনফিগারেশনের অধীনে সিস্টেম কনফিগারেশনে সক্ষম করতে পারবেন > নতুন অ্যাকাউন্ট বিকল্প তৈরি করুন> মানব-বান্ধব গ্রাহক আইডি উত্পন্ন করুন

6

কেন শুধু সংখ্যা ...

https://github.com/diglin/Diglin_Username

এই এক্সটেনশনের সাহায্যে আপনি ব্যবহারকারীর নাম দিয়ে লোকেরা লগইন করতে পারেন। স্পষ্টতই আপনি খুব বেশি অসুবিধা ছাড়াই সেই 'ব্যবহারকারীর নামগুলি' অ্যাকাউন্ট নম্বরগুলিতে লক করতে পারেন।


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