Um doppelte Bestellungen vermeiden zu können, empfehle ich, den Button zum Absenden der Bestellung nach dem ersten Klick, sofort zu deaktivieren und dem Kunden eine Meldung bereit zu stellen, dass seine Bestellung in Bearbeitung ist, solange die Seite "checkout_confirmation.php" noch nicht umgeleitet wurde.
Manchmal dauert die Verarbeitung etwas länger und der Kunde klickt erneut den Button zum Absenden der Bestellung und diese wird anschliessend 2 mal ausgeführt. Aus diesem Grund wird folgender Code empfohlen.
Finde in: catalog/checkout_confirmation.php
require('includes/template_top.php');
?>
Füge danach ein:
<script type="text/javascript">
function SubmitOrderButton(){
document.getElementById("submitmain").style.display = "none";
if (navigator.appName == "Microsoft Internet Explorer") {
document.getElementById("pleasewait").innerHTML = "";
document.getElementById("pleasewait").style.display = "block";
document.getElementById("pleasewait").innerHTML = "<img src='images/pleasewait.gif' alt='Please Wait'>";
} else {
document.getElementById("pleasewait").style.display = "block";
}
}
</script>
Ersetze folgenden Code:
<?php
if (is_array($payment_modules->modules)) {
echo $payment_modules->process_button();
}
echo tep_draw_button(IMAGE_BUTTON_CONFIRM_ORDER, 'fa fa-ok', null, 'primary', null, 'btn-success');
?>
Mit diesem Code:
<span id="submitmain">
<?php
if (is_array($payment_modules->modules)) {
echo $payment_modules->process_button();
}
?>
<br>
<?php echo tep_draw_button(IMAGE_BUTTON_CONFIRM_ORDER, 'fas fa-check-circle', null, 'primary', null, 'btn-success btn-block btn-lg');?>
</span>
<span id="pleasewait" style="display:none">
<span class="col-sm-12 w3-padding w3-round w3-table w3-border w3-bottombar w3-border-deep-orange w3-food-apricot w3-text-black w3-center w3-large">
<i class="w3-spin fab fa-cloudscale fa-2x"></i> <?php echo TEXT_PROCCESSING_ORDER;?></span>
</span>
Füge hin zu in: catalog/includes/languages/german/checkout_confirmation.php
define('TEXT_PROCCESSING_ORDER', 'Bestellung wird verarbeitet');