Die Anleitung ist entgegen des Thread-Titels für die Warenkorb-Box, nicht für den Warenkorb selbst, wenn ich mich nicht irre.
Außerdem sollte man dazu sagen, daß der Code nur bei Verwendung von "Versandkostenfrei" in dem OT-Modul
ot_shipping gilt, nicht bei Verwendung des Versandmoduls
freeamount.
Bei Verwendung von "Versandkostenfrei" in dem OT-Modul
ot_shipping hier ein Vorschlag für den Warenkorb selbst (hatte ich noch auf Platte liegen):
Datei anlegen mit im Kopf der Datei genanntem Namen und in dort genanntem Pfad:
<?php/***********************************************************
* file: nr_free_shipp_message.php
* path: /includes/extra/modules/order_details_cart_total/
* use: show buying difference to free shipping
*
* © copyright 09-2023, noRiddle
____
| | | | |
__ ___ |____/ ° ___| ___| | ___
|/ | | | | \ | | | | | | |___|
| n |___o | R i |___d |__ d l |__e
***********************************************************///BOC configdefined('NR_SHOW_FREE_SHIPP_MSG_UNDER') OR
define('NR_SHOW_FREE_SHIPP_MSG_UNDER', 30);//EOC config$nr_is_free_ship = defined('MODULE_ORDER_TOTAL_SHIPPING_STATUS') && strtolower(MODULE_ORDER_TOTAL_SHIPPING_STATUS
) == 'true' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && strtolower(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING
) == 'true';if($nr_is_free_ship === true) { require_once(DIR_WS_CLASSES
.'order.php'); $temp_order = new order
(); $nr_is_store_country = $temp_order->delivery['country_id'] == STORE_COUNTRY
; $nr_deliv_country_iso = strtoupper($temp_order->delivery['country']['iso_code_2']); unset($temp_order); $nr_min_freeshipp_val = $nr_is_store_country === true ?
(float
)MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER
: (float
)MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER_INTERNATIONAL
; $nr_diff_buy_val = $nr_min_freeshipp_val - $total; if($nr_diff_buy_val > 0) { $eff_nr_diff_buy_val = $xtPrice->xtcFormat($nr_diff_buy_val, true, 0, true); }}if(isset($eff_nr_diff_buy_val)) { if($nr_diff_buy_val <= (int
)NR_SHOW_FREE_SHIPP_MSG_UNDER
) { $nr_free_dhipp_out_val = $eff_nr_diff_buy_val; switch(strtolower($_SESSION['language_code'])) { case 'de': define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Nur noch %s bis wir ihre Bestellung versandkostenfrei versenden.'); // Wenn Sie noch eine Kleinigkeit für X EUR dazu bestellen können wir ihre Bestellung versandkostenfrei break; case 'en': case 'en_us': case 'en_gb': define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Only %s until we send your order with free shipping.'); break; default: define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Only %s until we send your order with free shipping.'); } } else { $nr_free_dhipp_out_val = $nr_min_freeshipp_val; switch(strtolower($_SESSION['language_code'])) { case 'de': define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'Ab %s Bestellwert versenden wir ihre Bestellung versandkostenfrei.'); break; case 'en': case 'en_us': case 'en_gb': define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'From %s order value we ship your order free of shipping costs.'); break; default: define('NR_DIFF_FREE_SHIPP_INFO_MSG', 'From %s order value we ship your order free of shipping costs.'); } } $module_smarty->assign('NR_DIFF_FREE_SHIPP_INFO', sprintf(NR_DIFF_FREE_SHIPP_INFO_MSG
, $nr_free_dhipp_out_val));}?> In
/templates/YOUR_TEMPLATE/module/order_details,html (nach Vorbild
tpl_modified_nova) oben unter
{config_load file="$language/lang_$language.conf" section="shopping_cart"}
{config_load file="lang_`$language`.custom"}
{config_load file="lang_`$language`.section" section="shopping_cart"}
das einfügen:
{if isset($NR_DIFF_FREE_SHIPP_INFO)}<h3
class="successmessage freeshipping mt_0">{$NR_DIFF_FREE_SHIPP_INFO}</h3
>{/if} {*new message
for free shipping by noRiddle
, DEIN_KÜRZEL
, 01-2024*} Texte in der
nr_free_shipp_message.php können nach Gusto angepasst werden.
Oben in der Datei bei
config kann der Differenzwert festgelegt werden ab welchem die Message angezeigt wird.
Manche möchten die Message nicht anzeigen lassen wenn der Betrag bis zur Versandkostenfrei-Grenze noch zu hoch ist.
Sieht ein wenig blöd aus wenn da, übertrieben gesagt, steht
Nur noch 320 EUR bis wir Ihre Bestellung versandkostenfrei versenden.
Wenn man also, wie mom. vorgegeben, 30 einträgt, wird die Message erst angezeigt wenn es <= 30 EUR sind die zur versandkostenfreien Sendung fehlen.
Gruß,
noRiddle