Jump to content
  • 0

Powiadamianie o logowaniu


RogerThat

Question

13 answers to this question

Recommended Posts

  • 0

wszystko jest możliwe, jednak trzeba tutaj określić co dokładnie potrzebujesz.

napisałeś "klient sie zalogował (założył konto)" jak dla mnie, założenie konta i zalogowanie się to dwie różne czynności ;)

 

chodzi o zwykły mail z informacją o tym, że ktoś się loguje ? założył konto?

Link to comment
Share on other sites

  • 0

ok, czyli chodzi o rejestrację klienta :)

wystarczy że w klasie: classes/Customer.php

 

do funkcji:

public function add($autodate = true, $null_values = true)
	{
		$this->id_shop = ($this->id_shop) ? $this->id_shop : Context::getContext()->shop->id;
		$this->id_shop_group = ($this->id_shop_group) ? $this->id_shop_group : Context::getContext()->shop->id_shop_group;
		$this->id_lang = ($this->id_lang) ? $this->id_lang : Context::getContext()->language->id;
		$this->birthday = (empty($this->years) ? $this->birthday : (int)$this->years.'-'.(int)$this->months.'-'.(int)$this->days);
		$this->secure_key = md5(uniqid(rand(), true));
		$this->last_passwd_gen = date('Y-m-d H:i:s', strtotime('-'.Configuration::get('PS_PASSWD_TIME_FRONT').'minutes'));
		
		if ($this->newsletter && !Validate::isDate($this->newsletter_date_add))
			$this->newsletter_date_add = date('Y-m-d H:i:s');
			
		if ($this->id_default_group == Configuration::get('PS_CUSTOMER_GROUP'))
			if ($this->is_guest)
				$this->id_default_group = (int)Configuration::get('PS_GUEST_GROUP');
			else
				$this->id_default_group = (int)Configuration::get('PS_CUSTOMER_GROUP');

		/* Can't create a guest customer, if this feature is disabled */
		if ($this->is_guest && !Configuration::get('PS_GUEST_CHECKOUT_ENABLED'))
			return false;
	 	$success = parent::add($autodate, $null_values);
		$this->updateGroup($this->groupBox);
		return $success;
	}

dodasz funkcję mail() wysyłającą maila na Twój adres. Możesz w niej umieścić wszystko, mail, date utworzenia itp. Odtąd po kazdorazowym dodaniu (rejestracji) klienta, otrzymasz na skrzynkę maila

Link to comment
Share on other sites

  • 0

w sumie to przemyślałem to raz jeszcze, lepiej chyba będzie zmodyfikować kontroller: AuthController.php

 

/controllers/front/authController.php

 

jest tam funkcja:

	protected function sendConfirmationMail(Customer $customer)
	{
		if (!Configuration::get('PS_CUSTOMER_CREATION_EMAIL'))
			return true;

		return Mail::Send(
			$this->context->language->id,
			'account',
			Mail::l('Welcome!'),
			array(
				'{firstname}' => $customer->firstname,
				'{lastname}' => $customer->lastname,
				'{email}' => $customer->email,
				'{passwd}' => Tools::getValue('passwd')),
			$customer->email,
			$customer->firstname.' '.$customer->lastname
		);
	}

zmodyfikuj ją tak:

protected function sendConfirmationMail(Customer $customer)
	{
		if (!Configuration::get('PS_CUSTOMER_CREATION_EMAIL'))
			return true;
        
        Mail::Send(
			$this->context->language->id,
			'account',
			Mail::l('Welcome!'),
			array(
				'{firstname}' => $customer->firstname,
				'{lastname}' => $customer->lastname,
				'{email}' => $customer->email,
				'{passwd}' => Tools::getValue('passwd')),
			"[email protected]",
			$customer->firstname.' '.$customer->lastname
		);
        

		return Mail::Send(
			$this->context->language->id,
			'account',
			Mail::l('Welcome!'),
			array(
				'{firstname}' => $customer->firstname,
				'{lastname}' => $customer->lastname,
				'{email}' => $customer->email,
				'{passwd}' => Tools::getValue('passwd')),
			$customer->email,
			$customer->firstname.' '.$customer->lastname
		);
	}

[email protected] - zastąp to swoim mailem.

w efekcie dostaniesz na skrzynkę maila z potwierdzeniem rejestracji klienta (taką samą jaką otrzymuje klient)

Link to comment
Share on other sites

  • 0

hmm....

Obawiam się że nie działa to za bardzo. Zakładam nowe konta i nic nie przychodzi mi na maila

<_<

 

co więcej, na tym etapie (czyli przed wpisaniem danych typu firma, ulica, NIP ...) klient również nie otrzymuje maila.

 

Maile do klienta w moim przypadku to tylko przychodzą 2 po zamówieniu.

Są to:

- Podsumowanie zamówienia

- Oczekiwanie na płatność

 

Nie przychodzi mail z potwierdzeniem rejestracji do klienta (napisałeś, że on to dostaje, więc może mam coś nie tak, gdyż z oimi ustawieniami nic nie otrzymuje)

 

Idealne dla mnie byłoby gdybym dostawał maila na etapie zaraz po wciśnięciu przycisku "Zarejestruj się" czyli zaraz po rejestracji a przed podaniem danych adresowych.

Edited by RogerThat (see edit history)
Link to comment
Share on other sites

  • 0

Może to pomoze

może to być problem związany z kopiowaniem sklepu.

Miałem sklep prestashop X na serwerze. Skopiowałem ten sklep na inną domenę na tym samym serwerze, i stworzyłem sklep Y, przerzuciłem baze danych i sklep, pozmieniałem wyglad maile, loga...
Wszystko działa poprawnie. W tym oryginalnym sklepie X przychodzi mail zwiazany z logowaniem a w tym Y niestety nie.

 

Tu link do dyskusji o kopiowaniu sklepu

http://www.prestashop.com/forums/topic/295275-dwa-sklepy-r%C3%B3%C5%BCny-wygl%C4%85d-te-same-produkty/
 

Link to comment
Share on other sites

  • 0

wgrałem czysty plik authController.php jeszcze raz i działa. dzieki.

 

 

ale robię teraz to co wyżej napisałeś by mail z wiadomością o pierwszym zalogowaniu klienta  do mnie przychodził i niestety nie przychodzi.

Do klienta zresztą też. Czyli błąd jest w tym kodzie.

 

Mój mail mam napisać w cudzysłowie?  Zresztą, próbowałem na różne sposoby

Edited by RogerThat (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...