Email Adresse in warenkorb?task=orderdone / orderdone.php ausgeben für Rechtssichere Bewertungsabfrage - Shopauskunft.de - gelöst

  • Hallo,


    offensichtlich stelle ich mich einmal wieder ein wenig zu blöd an, aber ich steht hier kurz vor einem Nervenzusammenbruch.


    Ich möchte gern eine Rechtssichere Bewertungsabfrage in die Bestellbestätigung direkt nach Absendung der Bestellung integrieren.


    warenkorb?task=orderdone -> Vielen Dank für Ihre Bestellung!


    Die Datei habe ich in ‎/templates/mein template/html/com_virtuemart/cart/orderdone.php als Overides angelegt und muss diese mit einem Script und ein paar Daten befüllen.


    Leider gelingt es mir nicht, hier die Daten der Bestellung auszulesen und anzuzeigen.

    Ich habe gefühlt bereits alle Varianten aus dem Forum und dem Netz versucht um die E-Mailadresse des Kunden auszulesen und anzuzeigen:


    <?php echo $view->orderDetails['details']['BT']->email; ?>

    <?php echo $viewData->orderDetails['details']['BT']->email; ?>

    <?php echo $this->orderDetails['details']['BT']->email; ?>

    <?php echo $viewData->order_details['details']['BT']->email; ?>

    <?php echo $view->order_details['details']['BT']->email; ?>

    <?php echo $this->order_details['details']['BT']->email; ?>


    Keine Chance und zudem würde ich gern noch die Versandkosten (->order_shipment), die Gesamtkosten (->payment_order_total) und die Ordernummer (-> order_number) ausgeben.


    Aber wenn ich mal wüsste mit was ich die email rausbekomme, dann wird der Rest gehen.


    Wenn ich in der Datei: /plugins/vmpayment/standard/standard/tmpl/post_payment.php

    $viewData["order_number"] und $viewData['displayTotalInPaymentCurrency'] eintrage, bekomme ich zumindest die Ordernummer und die Gesamtkosten, aber weder Versandkosten noch E-Mail geht auch in dieser Datei. Und als Overrides anlegen klappt irgendwie auch nicht mit dieser Datei.


    Vielleicht hat jemand eine Idee, wie ich die Mail Adresse in der orderdone.php ausgelesen bekomme.

    Klar, das ganze muss ich dann auch noch für orderdone_paypal machen.


    Danke und Gruß

  • Hallo Stefan,


    vielen Dank für deine Unterstützung und deine Rückmeldung.


    Wenn ich es so einbinde:

    <?php echo $this->cart->orderDetails['details']['BT']->email; ?>


    leider der gleiche Effekt, funktioniert nicht, er liest einfach nichts aus.


    Vielleicht noch einen weiteren Ansatz?


    Lieben Gruß

  • opschwarz

    Hat den Titel des Themas von „Email Adresse in warenkorb?task=orderdone / orderdone.php ausgeben für Rechtssichere Bewertungsabfrage“ zu „Email Adresse in warenkorb?task=orderdone / orderdone.php ausgeben für Rechtssichere Bewertungsabfrage - Shopauskunft.de“ geändert.
  • Hallo,

    ich habe jetzt einfach eine Datenbankabfrage in die orderdone.php eingebaut, die mir immer die letzten Einträge in den Tabellen ausgibt.

    Da in meinem Fall keine 10 Bestellungen in einer Millisekunde kommen, ist das für meinen Shop optimal.

    Die Abfrage funktioniert dann auch über alle Zahlarten hinweg in der orderdone.php als Overrides und ist somit Update fest und muss nicht in den Core integriert werden.

    Hier noch der Code, falls jemand ein ähnliches Problem hat:


    Pfad Overrides: /templates/dein_template/html/com_virtuemart/cart/orderdone.php

    Pfad Original Datei: /components/com_virtuemart/views/cart/tmpl/orderdone.php


    Am Ende in der Datei orderdone.php (am besten als Overrides, nicht im Core, wegen Updates) folgenden Code anhängen:


    Update 29.02.2024 -> Da mir langweilig war, habe ich den Code noch einmal etwas eingekürzt und vor allem die Eingabe der Datenbank Zugangsdaten entfernt. Funktion und Ausgabe ist die gleiche.


    Option Neu (2):

    //Code Beginn:


    //Datenbank verbinden und direkt auslesen

    //("SELECT Spalte_1, Spalte_2, Spalte_3, usw., created_on FROM Tabellenname ORDER BY Spalte_nach_welcher_geordnet_wird DESC LIMIT 0,1")

    //DESC LIMIT 0,1 - 0,1 bedeutet nur den letzten Eintrag der Spalte auslesen

    //Somit wird immer nur der letzte / neuste Tabeleneintrag ausgegeben, wenn man nach created_on sortiert

    $db=JFactory::getDBO(); $db->setQuery("SELECT order_number, order_total, virtuemart_order_id, order_shipment, created_on FROM j_virtuemart_orders ORDER BY virtuemart_order_id DESC LIMIT 0,1"); $result_1 = $db->loadAssocList();

    foreach($result_1 as $ausgabe_1)

    {

    $order_value = $ausgabe_1['order_total']; //Gesamtbetrag

    $order_shipping = $ausgabe_1['order_shipment']; //Versandkosten

    $order_id = $ausgabe_1['order_number']; //Bestellnummer

    $order_id = $ausgabe_1['created_on']; //Bestelldatum

    }

    $db->setQuery("SELECT email, created_on, virtuemart_order_id FROM j_virtuemart_order_userinfos ORDER BY virtuemart_order_id DESC LIMIT 0,1"); $result_2 = $db->loadAssocList();

    foreach($result_2 as $ausgabe_2)

    {

    $email = $ausgabe_2['email']; //Bestell Email Adresse

    }


    //ggf. fest vorgegebene Variablen einbinden, ohne das diese ausgelesen werden müssen:

    $xc_label = 'XXXXX'; //Eure Shop-ID bei Shopbewertung.de

    $token = 'XXXXXXXXXXX'; //Meist fest vorgegeben - bei Shopbewertung.de z.B. IEqggoqlBJdA/gCRrKsRmQ

    $shopname = 'Dein_Shop'; //Name deines Shops

    $url_shop = 'www.deine_Seite.de'; //ohne Protokoll-Prefix - ohne http:// oder https://

    $shop_type = 'XXX'; //laut Liste des Bewertungsportals - Virtuemart aktuell "13. Modified" bei Shopbewertung.de

    $language = 'de'; //Shopsprache

    ?>


    //Script einbinden:

    <script type="text/javascript">

    var fetched_data = {

    'order_value': '<?php echo $order_value; ?>',

    'shipping_value': '<?php echo $order_shipping; ?>',

    'order_id': '<?php echo $order_id; ?>',

    'order_created': '<?php echo $order_created; ?>',

    'email': '<?php echo $email; ?>',

    'xc_label': '<?php echo $xc_label; ?>',

    'token': '<?php echo $token; ?>' }

    'shop_name': '<?php echo $shopname; ?>',

    'url': '<?php echo $url_shop; ?>',

    'shop_type': '<?php echo $shop_type; ?>',

    'language': '<?php echo $language; ?>'

    }

    </script>

    <script type="text/javascript" src="https://rba.shopauskunft.de/js/rba_widget.js" id="rba_widget" async></script>

    <?php


    //Code Ende



    Option alt (1):

    //Code Beginn:


    //Datenbank verbinden

    $db = new mysqli('localhost', 'XXXXXXX', 'XXXXXXX', 'XXXXX'); //('Server', 'Benutzername', 'Passwort', 'Datenbankname');


    //Datenbank auslesen / abfragen

    //("SELECT Spalte_1, Spalte_2, Spalte_3, usw., created_on FROM Tabellenname ORDER BY Spalte_nach_welcher_geordnet_wird DESC LIMIT 0,1")

    //DESC LIMIT 0,1 - 0,1 bedeutet nur den letzten Eintrag der Spalte auslesen

    //Somit wird immer nur der letzte / neuste Tabeleneintrag ausgegeben, wenn man nach created_on sortiert

    $ausgabe = $db->query("SELECT order_number, order_total, virtuemart_order_id, order_shipment, created_on FROM j_virtuemart_orders ORDER BY virtuemart_order_id DESC LIMIT 0,1")

    or die( $db->error);

    while ($order = $ausgabe->fetch_object()) {

    $order_value = $order->order_total; //Gesamtbetrag

    $order_shipping = $order->order_shipment; //Versandkosten

    $order_id = $order->order_number; //Bestellnummer

    $order_created = $order->created_on; //Bestelldatum

    }


    $ausgabe_2 = $db->query("SELECT email, created_on, virtuemart_order_id FROM j_virtuemart_order_userinfos ORDER BY virtuemart_order_id DESC LIMIT 0,1")

    or die( $db->error);

    while ($order_2 = $ausgabe_2->fetch_object()) {

    $email = $order_2->email; //Bestell Email Adresse

    }


    //ggf. fest vorgegebene Variablen einbinden, ohne das diese ausgelesen werden müssen:

    $xc_label = 'XXXXX'; //Eure Shop-ID bei Shopbewertung.de

    $token = 'XXXXXXXXXXX'; //Meist fest vorgegeben - bei Shopbewertung.de z.B. IEqggoqlBJdA/gCRrKsRmQ

    $shopname = 'Dein_Shop'; //Name deines Shops

    $url_shop = 'www.deine_Seite.de'; //ohne Protokoll-Prefix - ohne http:// oder https://

    $shop_type = 'XXX'; //laut Liste des Bewertungsportals - Virtuemart aktuell "13. Modified" bei Shopbewertung.de

    $language = 'de'; //Shopsprache

    ?>


    //Script einbinden:

    <script type="text/javascript">

    var fetched_data = {

    'order_value': '<?php echo $order_value; ?>',

    'shipping_value': '<?php echo $order_shipping; ?>',

    'order_id': '<?php echo $order_id; ?>',

    'order_created': '<?php echo $order_created; ?>',

    'email': '<?php echo $email; ?>',

    'xc_label': '<?php echo $xc_label; ?>',

    'token': '<?php echo $token; ?>' }

    'shop_name': '<?php echo $shopname; ?>',

    'url': '<?php echo $url_shop; ?>',

    'shop_type': '<?php echo $shop_type; ?>',

    'language': '<?php echo $language; ?>'

    }

    </script>

    <script type="text/javascript" src="https://rba.shopauskunft.de/js/rba_widget.js" id="rba_widget" async></script>

    <?php


    //Datenbank schließen:

    $db -> close();


    //Code Ende


    Somit kann das Thema als erledigt angesehen werden.


    Lieben Gruß

  • Hi,


    hast Du da weiterführende Informationen wegen Rechtssicherheit?Also weshalb löst Du das über die orderdone.php?


    Ich hatte das bis jetzt immer in der Versandbestätigungsmails integriert.


    Also z.B.:

    "Sehr geehrter Kunde, Ihre Bestellung XYZ ist soeben an Sie versendet worden....bla, blupp....

    Wenn Sie mit uns zufrieden waren, würden wir uns über eine Bewertung bei Bewertungsportal abcxyz sehr freuen."

  • Hallo,

    da es rechtlich nicht zulässig ist, einfach um eine Bewertung zu bitten, egal wann, ohne die Zustimmung des Kunden, ist hier leider eine Zustimmung nötig.

    Befrag mal Google:Nach ständiger und mittlerweile höchstrichterlicher Rechtsprechung fallen solche Feedbackanfragen allerdings unter den Begriff der (Direkt-)Werbung und sind daher ohne vorherige Einwilligung des Kunden stets unzulässig – selbst wenn mit der E-Mail die Übersendung einer Rechnung für ein zuvor gekauftes Produkt erfolgt.


    Also lieber rausnehmen und das direkt in der orderdone.php lösen. :-)

    Lieben Gruß

  • Danke Dir für Deine Antwort...habe ich so von meiner Beratung noch nicht gelesen....muss ich mal tiefer wühlen, bevor ich wieder live gehe....

    Trifft aber meines erachtens wieder mal die falschen, nämlich die kleineren.....die großen oder unseriösen interessiert es eh nicht....die zahlen ggf. die Strafe und gut....(Ebay schickt ständig Bewertungsaufforderungen, der Handyanbieter, usw usw...)

  • opschwarz

    Hat den Titel des Themas von „Email Adresse in warenkorb?task=orderdone / orderdone.php ausgeben für Rechtssichere Bewertungsabfrage - Shopauskunft.de“ zu „Email Adresse in warenkorb?task=orderdone / orderdone.php ausgeben für Rechtssichere Bewertungsabfrage - Shopauskunft.de - gelöst“ geändert.