19 Mai 2012, 03:46:31 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Kunde kann Konto selbst löschen  (Gelesen 339 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Shapeir
Stammposter
***
Beiträge: 127



« am: 31 Januar 2012, 22:31:30 »

Hallo.
Ich habe hier:

http://www.prestashop.com/forums/topic/15654-was-andern-fur-eu-rechtssicherheit/

folgende Anleitung gefunden. Alles funtioniert wunderbar Smiley!

Meine Frage ist nun ob es möglich ist nachdem man sein Konto gelöscht hat eine Hinweisemail an User und Admin zu versenden?

Vielen Dank!

Fix: Kunde kann Konto selbst löschen

identity.php
davor:


Code:
if (Tools::isSubmit('submitIdentity'))
{
    if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) AND
    !(Tools::getValue('months') == '' AND Tools::getValue('days') == '' AND Tools::getValue('years') == ''))
        $errors[] = Tools::displayError('invalid birthday');

einfügen:

Code:
elseif($_POST['deleted'])
    {
        $_POST['old_passwd'] = trim($_POST['old_passwd']);
        if (empty($_POST['old_passwd']) OR (Tools::encrypt($_POST['old_passwd']) != $cookie->passwd))
            $errors[] = Tools::displayError('your current password is not that one');
        elseif ($_POST['deleted'] == 1)
        {
            $errors = $customer->validateControler();
            if (!sizeof($errors))
            {
                $customer->deleted = 1;
                $customer->active = 0;
               
                if (Tools::getValue('passwd'))
                    $cookie->passwd = $customer->passwd;
                if ($customer->update())
                {
                    $smarty->assign('confirmation', 1);
                    $cookie->mylogout();
                    Tools::redirect('index.php');
                }
                else
                    $errors[] = Tools::displayError('impossible to update information');
            }
        }
    }


nachher:


Code:
else
    {
        $customer->birthday = (empty($_POST['years']) ? '' : intval($_POST['years']).'-'.intval($_POST['months']).'-'.intval($_POST['days']));[/i]



themes/{themenname}/identity.tpl
davor:


           

Code:
                <input type="checkbox" name="optin" id="optin" value="1" {if $smarty.post.optin == 1} checked="checked"{/if} />
                {l s='Receive special offers from our partners'}
           


einfügen:


           

Code:
                <input type="checkbox" name="deleted" id="deleted" value="1" />
                {l s='Delete your account'}
           
           


danach:


           

Code:
                <input type="submit" class="button" name="submitIdentity" value="{l s='Save'}" />
     

Wenn wer möchte kann hier noch ein JS Popup mit abfrage "sind sie sicher ... ?" eingefügt werden.
der kunde wird in der datenbank auf deleted = 1 und active = 0 gesetzt.
« Letzte Änderung: 03 Februar 2012, 19:18:58 von Chris, Grund: Codetags eingebaut » facebook-like.png Gespeichert

PrestaShop™ 1.4.6.2
Lockesoft
Moderator
Forenguru
*****
Beiträge: 1237



WWW
« Antworten #1 am: 02 Februar 2012, 18:12:41 »

Hallo Shapeir,

eine Lösung hab ich im Moment gerade nicht, dafür eine Bitte

Setze doch bitte solche Sourcecode bzw. Quelltexte in Codetags. Das ist das Rautensymbol oberhalb des Texteditors. Das macht die Sache für alle einfacher zu lesen.
Danke im Voraus
facebook-like.png Gespeichert

LG Klaus / Lockesoft
diverse Presta-Installationen von 0.81 bis 1.4.x

Kids2Keys2012 der Tastenwettbewerb der IFET, für Jung und Alt
Shapeir
Stammposter
***
Beiträge: 127



« Antworten #2 am: 04 Februar 2012, 11:40:46 »

OK wusste ich nicht sorry Smiley!

Eigentlich muss es ja nciht egarde eine email sein.

Das Problem mit diesem Code ist das der Kunde der sich löschen möchte wie im Link schon erwähnt tatsächlich in der datenbank nicht gelöscht wird. Der kunde wird in der datenbank auf deleted = 1 und active = 0 gesetzt.

Das problem dabei ist, sollte der glecihe Kunde sich zu einem Späteren Zeitpunkt mit der Gleichen Email Registrieren wollen erscheint
wenn man die Email andresse unter: Erstellen Sie Ihr Konto eingibt folgendes:
Es bestehen 1 Fehler :

Es ist bereits ein Konto mit dieser E-Mail registriert, geben Sie bitte das Kennwort oder fordern Sie ein neues an.

Wenn man bei: Bereits registriert? die Email und das alte Passwort eingibt erscheint:

Es bestehen 1 Fehler :

    Authentication failed

Eigentlich ist es auch logisch, da dieser User tatsächlilch in der Datenbank noch besteht.

Hier müsste der Kunde mir eine Email schreiben,dann müsste ich entweder den Acount in der Datenbank Reaktiviere (Delete = 0), oder löschen.

Könnte sich der Benutzer sich nicht gleich ganz aus der Datenbank löschen?

Dankeschonmal
facebook-like.png Gespeichert

PrestaShop™ 1.4.6.2
Tags:
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  


Powered by SMF 1.1.16 | SMF © 2006, Simple Machines | Impressum | Datenschutz
Seite erstellt in 0.048 Sekunden mit 20 Zugriffen.