क्या ग्राहकों के लिए ईमेल पते के बजाय ग्राहक संख्या के साथ लॉगिन करना संभव है


12

मैं एक लॉगिन पृष्ठ बनाना चाहता हूं जो उनके ईमेल पते के बजाय एक निर्दिष्ट ग्राहक संख्या का उपयोग करता है। जिस तरह से मेरा व्यवसाय सेटअप है, एक अलग ईकॉमर्स प्लेटफॉर्म पर, वे अपने खाते को ग्राहक संख्या के साथ एक्सेस करते हैं क्योंकि उनके एक खाते के लिए कई खाता प्रबंधक हैं। मैं उनके लिए खाते बनाता हूं और फिर एक ग्राहक संख्या प्रदान करता हूं, जिसे वे तब पासवर्ड के साथ लॉगिन करने के लिए उपयोग करते हैं।

किसी भी तरह की सहायता का स्वागत किया जाएगा।


मुझे डर है कि इस साइट के लिए यह भी बोर्ड है। हाँ यह संभव है, लेकिन इस काम को करने के लिए बहुत सारे पुनर्लेखन कोड और टेम्प्लेट आदि बदलना होगा।
डेविड मैनर्स

धन्यवाद डेविड, मैंने हालांकि कि यह मामला हो सकता है, लेकिन मैं हालांकि यह एक शॉट के लायक हो सकता है।
एलेक्स डब्ल्यूजी

जवाबों:


8

छोटे कस्टम कोड के साथ मूल तर्क को लागू करना संभव है:

के लिए एक पर्यवेक्षक लिखें controller_predispatch_customer_account_loginPost, जांचें कि क्या पोस्ट किया गया ईमेल पता ( username) ईमेल पते की तरह नहीं दिखता है। इस मामले में ग्राहक संख्या के आधार पर ग्राहक को देखें और POST डेटा में उपयोगकर्ता नाम के स्थान पर ग्राहक के वास्तविक ईमेल पते को बदलें।

उदाहरण प्रेक्षक कोड:

$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

इस एक्सटेंशन की मदद से आप उपयोगकर्ता नाम के साथ लॉगिन कर सकते हैं। स्पष्ट रूप से आप बहुत अधिक कठिनाई के बिना उन 'उपयोगकर्ता नाम' को 'खाता संख्या' तक लॉक कर सकते हैं।


मुझे लगता है कि यह काम करना चाहिए। मैं इमेजिंग मैं अनुकूलन की एक निश्चित राशि करना होगा। यह काम करने के लिए कि मैं कैसे चाहता हूं।
एलेक्स डब्ल्यूजी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.