Polskie wsparcie PrestaShop
PrestaShop => Konfiguracja => Wątek zaczęty przez: motorider w Marzec 19, 2010, 11:41:53 pm
-
Chcę aby w moim sklepie można było założyć kilka kont na ten sam adres email. Zmieniłem w funkcji customerExists w pliku classes/Customer.php warunek where na taki, który nigdy nie zostanie spełniony, ale przy próbie utworzenia konta otrzymuję bląd: "wystąpił błąd podczas tworzenia twojego konta". Czy ktoś może mi pomóc?
static public function customerExists($email, $return_id = false)
{
if (!Validate::isEmail($email))
die (Tools::displayError());
$result = Db::getInstance()->getRow('
SELECT `id_customer`
FROM `'._DB_PREFIX_.'customer`
WHERE `email`= 1');
if ($return_id)
return intval($result['id_customer']);
else
return isset($result['id_customer']);
}
-
Znalazłem rozwiązanie problemu, w tabeli ps_customer jest indeks na kolumnie email, który trzeba usunąć.
-
Witam.
Czy mógłbyś napisać, co dokładnie trzeba w PHPMyAdmin zrobić, żeby usunąć ten index?
Dzięki wielkie za pomoc. Pozdrawiam.
-
Indeks można usunąć na dwa sposoby:
1. Zapytaniem SQL
ALTER TABLE `ps_customer` DROP INDEX `email`
2. Wybieramy tabelę ps_customer, przechodzimy do zakładki struktura, na dole rozwijamy szczegóły i klikamy usuń
(http://img337.imageshack.us/img337/5104/beztytuuhm.jpg)
-
Kolego dzięki wielkie za pomoc, oczywiście wszystko zagrało.
Dla osób niewiedzących do czego może się to przydać, to napiszę, że dzięki temu można spokojnie korzystać z dodatku PWA pozwalającego robić zakupy bez rejestracji- normalnie jeśli ktoś poda swój email przy zakupach bez rejestracji, to zostaje on w bazie danych i jeśli w przyszłości ten sam klient spróbuje zrobić zakupy bez rejestracji na ten sam email, to wywali błąd, że nie udało się utworzyć konta (związane jest to z istnieniem takiego maila w bazie i nie może on drugi raz się tu pojawić). Po takiej modyfikacji można robić nieskończenie wiele razy zakupy przez PWA na ten sam email.
Pozdrawiam
-
Widzę, że nie tylko ja wpadłem na ten pomysł :)
-
Witam, możecie powiedzieć czy mam coś jeszcze zmienić, ponieważ usunięcie indexu e-mail nic nie dało.
(http://img31.imageshack.us/img31/7171/clipboard01wim.jpg)
-
W pliku authentication.php trzeba usunąć lub skomentować, ten fragment, pojawia się dwa razy w pliku
elseif (Customer::customerExists($email))
$errors[] = Tools::displayError('someone has already registered with this e-mail address');
-
Bardzo dziękuje. Pomogło :)
-
Witam,
Wyskakuje mi komunikat:
"Unknown column 'email' in 'where clause'
SELECT `id_customer`
FROM `ps_customer`
WHERE `email` = email@mail.com' "
Wiecie może w czym roblem, w bazie email został usunięty ?
-
A ja wysłałem takie zapytanie, przez uruchom zapytanie sql i otrzymałem odpowiedź:
#1046 - No database selected
Co poszło nie tak. Albo inaczej co robię nie tak?
Dodam że wybrałem ten sposób gdyż w mojej bazie nie znalazłem linku "szczegóły" o którym mowa powyżej
...musicie mi jakoś wybaczyć ale nie zawsze jestem tak do końca rozgarnięty... Myślałem że należy kliknąć "szczegóły"... a tu po prostu należy usunąć z indeksów pole email.
...biorę pejcz i zaczynam się biczować, kara musi być...
Pozdrawiam
-
nie wybrales bazy na ktorej chcesz wykonac zapytanie, na poczatku zapytania dodaj:
USE nazwa_bazy;
za nazwa_bazy podstaw wlasciwa nazwe bazy danych
-
Więc ostatecznie wywaliłem z bazy danych index email
teraz już go tam na dole nie ma
index presta.jpg (http://zapodaj.net/ee35951453887.jpg.html)
oraz zastosowałem się do tych poleceń:
W pliku authentication.php trzeba usunąć lub skomentować, ten fragment, pojawia się dwa razy w pliku
Kod:
elseif (Customer::customerExists($email))
$errors[] = Tools::displayError('someone has already registered with this e-mail address');
W efekcie dalej mam komunikat o tym że adres email już istnieje w bazie,
błąd.jpg (http://zapodaj.net/a2e4c677a6d7f.jpg.html)
Co jeszcze mogę zrobić?
Wiem co należy zrobić.... Myśleć a z tym dziś u mnie nie najlepiej....
Nie zastosowałem oczywiście zmiany w pliku classes/Customer.php z samego początku tego posta...
Na dziś to chyba już koniec kombinowania bo coś bardzo słabo wypadam...
Pozdrawiam raz jeszcze.