Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: ANLEITUNG: Weiterleitung zur Bestellhistorie nach Login

    prefy

    • Neu im Forum
    • Beiträge: 32
    • Geschlecht:
    Hallo liebe Community,
    ich brauche schnell Hilfe...

    Ich habe das Forum schon durchsucht, aber leider immer nur den Redirect zum Account bekommen.

    Mein Problem:
    Nach dem Login soll auf die Bestellhistorie ("account_history") weitergeleitet werden, aber nur, wenn der Kunde auch Bestellungen hat.
    Hat der Kunde keine Bestellungen, soll ganz normal in den Warenkorb (falls Produkte vorhanden sind) oder zum Account weitergeleitet werden.
    Ich nutze Version 1.05 und xtc5-Template.

    Bisher sieht das in der "login.php" ja so aus:

    Code: PHP  [Auswählen]
     if ($_SESSION['cart']->count_contents() > 0) {
                                    //BOF - web28 - 2010-08-11 redirect NONSSL
                    //xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
                                    xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART),'NONSSL');
                                    //EOF - web28 - 2010-08-11 redirect NONSSL
            } else {
                    //BOF - web28 - 2010-08-11 redirect NONSSL
                    //xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
              xtc_redirect(xtc_href_link(FILENAME_ACCOUNT),'NONSSL');
                    //EOF - web28 - 2010-08-11 redirect NONSSL
              }

    Ich habe schon überlegt vor der Bedingung mit dem Warenkorb eine Bedingung bezüglich der Produkte festzulegen, aber leider habe ich gar keinen Plan wie ich abfrage, ob der Kunde überhaupt Bestellungen hat?
    Meine PHP-Kenntnisse sind leider auf Grundkenntnisse beschränkt, also seid gnädig...
    Ich hoffe ihr könnt mir helfen.
    MfG Marc

    Linkback: https://www.modified-shop.org/forum/index.php?topic=15871.0

    prefy

    • Neu im Forum
    • Beiträge: 32
    • Geschlecht:
    Re: ANLEITUNG: Weiterleitung zur Bestellhistorie nach Login
    Antwort #1 am: 08. Oktober 2011, 08:40:17
    Habe das Problem lösen können...

    Vielleicht ist es ja auch für andere Mitglieder interessant!

    Folgendes habe ich in der "login.php" geändert:

    Zunächst sucht ihr im Code (ziemlich am Anfang):

    Code: PHP  [Auswählen]
    // include needed functions
    require_once (DIR_FS_INC.'xtc_validate_password.inc.php');
    require_once (DIR_FS_INC.'xtc_array_to_string.inc.php');
    require_once (DIR_FS_INC.'xtc_write_user_info.inc.php');

    Direkt darunter fügt Ihr ein:

    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_count_customer_orders.inc.php');

    Jetzt könnt Ihr nämlich die Anzahl der Bestellungen des Kunden, der sich gerade einloggt, zählen.
    Anschließend sucht Ihr im Code:

    Code: PHP  [Auswählen]
    if ($_SESSION['cart']->count_contents() > 0) {
                                                //BOF - web28 - 2010-08-11 redirect NONSSL
                        //xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
                                     xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART),'NONSSL');
                                                //EOF - web28 - 2010-08-11 redirect NONSSL
                } else {
                        //BOF - web28 - 2010-08-11 redirect NONSSL
                        //xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
                    xtc_redirect(xtc_href_link(FILENAME_DEFAULT),'NONSSL');
                       //EOF - web28 - 2010-08-11 redirect NONSSL
                }

    und fügt davor folgendes ein:

    Code: PHP  [Auswählen]
    //Anzahl der Bestellungen des Kunden
    $checkorder = xtc_count_customer_orders();

    //Falls der Kunde Bestellungen hat, auf die Bestellhistorie weiterleiten                       
    if ($checkorder > 0 ) {
              xtc_redirect(xtc_href_link(FILENAME_ACCOUNT_HISTORY),'NONSSL');
            } else {  
    //Falls der Kunde keine Bestellungen hat, aber Produkte im Warenkorb, erfolgt die ursprüngliche Prüfung                          

    Vergesst nicht am Ende eine geschlossene geschweifte Klammer zum Beenden der else-Bedingung zu setzen!!
    Das muss dann zusammen so aussehen:

    Code: PHP  [Auswählen]
    //Anzahl der Bestellungen des Kunden
    $checkorder = xtc_count_customer_orders();

    //Falls der Kunde Bestellungen hat, auf die Bestellhistorie weiterleiten                       
    if ($checkorder > 0 ) {
              xtc_redirect(xtc_href_link(FILENAME_ACCOUNT_HISTORY),'NONSSL');
            } else {                            
    //Falls der Kunde keine Bestellungen hat, aber Produkte im Warenkorb, erfolgt die ursprüngliche Prüfung                      
                      if ($_SESSION['cart']->count_contents() > 0) {
                                       //BOF - web28 - 2010-08-11 redirect NONSSL
                                      //xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
                               xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART),'NONSSL');
                                      //EOF - web28 - 2010-08-11 redirect NONSSL
                       } else {
                                      //BOF - web28 - 2010-08-11 redirect NONSSL
                                     //xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
                                xtc_redirect(xtc_href_link(FILENAME_DEFAULT),'NONSSL');
                                    //EOF - web28 - 2010-08-11 redirect NONSSL
                       }
                 //Jetzt die else-Bedingung schließen mit der geschweiften Klammer ;)  
                  }

    Ich hoffe natürlich, dass alles auch sauber geschrieben ist.
    Um Rückmeldung vom Team würde ich mich freuen.
    MfG
    Marc

    [EDIT Tomcraft 08.10.2011: Fehler in Anleitung korrigiert.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: ANLEITUNG: Weiterleitung zur Bestellhistorie nach Login
    Antwort #2 am: 08. Oktober 2011, 09:55:24
    Hallo Marc,

    Danke für's Teilen deiner Lösung! :thx:

    Grüße

    Torsten

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: ANLEITUNG: Weiterleitung zur Bestellhistorie nach Login
    Antwort #3 am: 08. Oktober 2011, 12:05:08
    Hier fehlt ein Semikolon bzw. Strichpunkt:

    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_count_customer_orders.inc.php')

    Richtig sieht es dann so aus:

    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_count_customer_orders.inc.php');

    Gruß
    Ronny

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: ANLEITUNG: Weiterleitung zur Bestellhistorie nach Login
    Antwort #4 am: 08. Oktober 2011, 14:01:20
    Danke dir! :thx:

    Ich ergänze das noch in der Anleitung.

    Grüße

    Torsten
               
    anything