Antwort #14 am: 16. Juni 2018, 14:07:24
Vielen Dank für die Hinweise hier.
Wie gewohnt TOP.
Also ich habe das jetzt so gelöst:
Die Tabelle orders habe ich um die Felder rating(int(1) und ratingtime (datetime) ergänzt.
In der checkout_success.php ca. in Zeile 70 (vor require_once (DIR_WS_CLASSES . 'payment.php');
if (isset ($_GET['ratingallow']) && ($_GET['ratingallow'] == 'allow')) { $ratingdatum = date("Y-m-d H:i:s"); xtc_db_query
("update ".TABLE_ORDERS
." set rating = '1' where orders_id = '".$last_order."'"); xtc_db_query
("update ".TABLE_ORDERS
." set ratingtime = '".$ratingdatum."' where orders_id = '".$last_order."'"); $smarty->assign('RATED', 'rated');} In der checkout_success.html
{if $RATED != "rated"} {literal
} <script
> $
(document
).ready
(function () { setTimeout
(function() { if ($
('#ratingmodal').length
) { $
.magnificPopup
.open
({ items
: { src
: '#ratingmodal' }, type
: 'inline' }); } }, 4000); }); </script> {/literal
} <div id
="ratingmodal" class="mfp-hide"> <div
class="inner"> <form action
="checkout_success.php"> <div
class="hl">Bitte bewerten Sie uns
</div
> <p
> Waren Sie mit uns zufrieden? Dann bewerten Sie uns bitte beim unabh
ä
;ngigen Bewertungsportal K
ä
;ufersiegel vom H
ä
;ndlerbund
. </p
> <p
> <strong
>M
ö
;chten Sie uns nach Erhalt der Ware bewerten?
</strong
> </p
> <div
class="buttonholder"> <div
class="mfp-close mfp-no">Nein
, Danke
!</div
> <button type
="submit">Ja
, ich m
ö
;chte
.</button
> </div
> <p
class="subline"> F
ü
;r
die Bewertungsabfrage gilt unsere
<a href
="/Datenschutzerkl-rung:_:2.html">Datenschutzerkl
ä
;rung
.</a
> </p
> <input type
="hidden" name
="ratingallow" id
="ratingallow" value
="allow"> </form
> </div
> </div
> {/if} Bei mir lasse ich das ähnlich wie bei Shopvote in einem Layer aufgehen nach 4 Sekunden.
Ich verwende bei mir die Magnific Lightbox wie hier im Beispiel gezeigt.
Dann noch ein wenig CSS:
#ratingmodal {
background: #fff;
max-width: 40%;
margin: 0 auto;
position: relative;
padding: 40px;
text-align: center;
border-radius: 10px;
font-size: 20px;
line-height: 1.4;
}
#ratingmodal .hl {
font-size: 30px;
border-bottom: 1px solid #ccc;
padding-bottom: 5px;
margin-bottom: 20px;
}
#ratingmodal p {
padding-bottom: 15px;
}
#ratingmodal p.subline {
font-size: 15px;
}
#ratingmodal .buttonholder {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
justify-content: center;
padding: 20px 0 40px;
}
#ratingmodal .buttonholder .mfp-no,
#ratingmodal .buttonholder button {
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
width: 40%;
border: 1px solid #ccc;
padding: 10px 5px;
cursor: pointer;
margin: 0 20px;
background: none;
font-size: 20px;
}
#ratingmodal .buttonholder .mfp-no {
height: auto;
line-height: auto;
position: relative;
opacity: 1;
color:#000;
}
Funktioniert wunderbar.
Initial beim Aufruf der Checkout Success wird nach 4 Sekunden der Layer angezeigt.
Klickt man auf nein oder irhendwo ausserhalb des Layers, wird dieser geschlossen und es passiert nichts.
Klick man auf Ja, ich möchte, ruft das Forumlar wieder die Checkout Success auf mit der Übergabe eines hidden field ratingallow mit value allow.
In der Datenbank steht dann bei Rating 1 und das entsprechende, aktuelle Datum.
Das dürfte zum Dokumentieren ausreichen.
Ich habe übrigens zuerst versucht, das Form Action auf checkout_success.php?ratingallow=allow laufen zu lassen. Das führte aber zu folgendem Seitenaufruf: checkout_success.php?
Das Hidden Field jedoch wird hinten an die URL angehangen als Parameter.
Verstehe ich nicht, geht aber:)
Wenn jemand hilfe braucht, fragt ruhig.
Viele Grüße
Andi
P.S. In meinem Fall reicht dieses Vorgehensweise aus.
Wir haben den Versand der Bewertunsemails auf einen bestimmten Status gestellt.
Beim Standard Status passiert nichts.
So kann ich, wenn ich in die Bestellung reingehe, sehen, ob eine E-Mail raus darf oder nicht.
Wird jedoch immer bei Versendet eine E-Mail rausgehauen, muss hier an der entsprechenden Stelle des Bewertunsgtools noch eine Abfrage rein.