Guest User

Untitled

a guest
Nov 18th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. <?php
  2. require_once "Mage/Customer/controllers/AccountController.php";
  3. class User_Tracker_AccountController extends Mage_Customer_AccountController{
  4.  
  5. public function loginPostAction()
  6. {
  7. if (!$this->_validateFormKey()) {
  8. $this->_redirect('*/*/');
  9. return;
  10. }
  11.  
  12. if ($this->_getSession()->isLoggedIn()) {
  13. $this->_redirect('*/*/');
  14. return;
  15. }
  16. $session = $this->_getSession();
  17.  
  18. if ($this->getRequest()->isPost()) {
  19. $login = $this->getRequest()->getPost('login');
  20.  
  21. //added code
  22.  
  23. $phoneNumber = $login['username'];
  24. $customer = Mage::getResourceModel('customer/customer')
  25. ->addAttributeToSelect('phone_number')
  26. ->addAttributeToFilter('phone_number', $phoneNumber)
  27. ->getFirstItem()->getCustomer();
  28. if ($customer !== false) {
  29. $login['username'] = $customer->getEmail();
  30. }else{
  31. $login['username'] = $phoneNumber;
  32. }
  33.  
  34. //end here
  35.  
  36. if (!empty($login['username']) && !empty($login['password'])) {
  37. try {
  38. $session->login($login['username'], $login['password']);
  39. if ($session->getCustomer()->getIsJustConfirmed()) {
  40. $this->_welcomeCustomer($session->getCustomer(), true);
  41. }
  42. } catch (Mage_Core_Exception $e) {
  43. switch ($e->getCode()) {
  44. case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
  45. $value = $this->_getHelper('customer')->getEmailConfirmationUrl($login['username']);
  46. $message = $this->_getHelper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
  47. break;
  48. case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
  49. $message = $e->getMessage();
  50. break;
  51. default:
  52. $message = $e->getMessage();
  53. }
  54. $session->addError($message);
  55. $session->setUsername($login['username']);
  56. } catch (Exception $e) {
  57. // Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
  58. }
  59. } else {
  60. $session->addError($this->__('Login and password are required.'));
  61. }
  62. }
  63.  
  64. $this->_loginPostRedirect();
  65. }
  66.  
  67. <config>
  68. ...... // YOUR OTHER CODE
  69. ......
  70. <frontend>
  71. <routers>
  72. <customer>
  73. <args>
  74. <modules>
  75. <User_Tracker before="Mage_Customer">User_Tracker</User_Tracker>
  76. </modules>
  77. </args>
  78. </customer>
  79. </routers>
  80. </frontend>
  81. ......
  82. ......
  83. </config>
  84.  
  85. $phoneNumber = $login['username'];
  86. $customer = Mage::getResourceModel('customer/customer_collection')
  87. ->addAttributeToSelect('phone_number')
  88. ->addAttributeToFilter('phone_number', $phoneNumber)
  89. ->getFirstItem();
  90. if ($customer !== false) {
  91. $login['username'] = $customer->getEmail();
  92. }else{
  93. $login['username'] = $phoneNumber;
  94. }
  95.  
  96. if (strpos($login['username'], '@') === false){ //the user has entred a phone number
  97. $telUser = $login['username'];
  98. $customer = Mage::getModel('customer/customer')->getCollection()
  99. ->addAttributeToFilter('phone_number', $telUser)
  100. ->getFirstItem();
  101. if($telUser == $customer->getPhoneNumber()){
  102. $login['username'] = $customer->getEmail();
  103. }
  104. }
Add Comment
Please, Sign In to add comment