YePix Posted October 15, 2018 Share Posted October 15, 2018 Hi, könnte hier jemand mal nachsehen was da falsch läuft ? Die Angabe Lieferzeiten funzt nur für Deutschland also bei 81 mit 3 bis 7 Tage Kunden aus dem Ausland bekommen die gleiche Angabe 3 bis 7 Tage anstelle von 5 bis 10 Tage general.php // Lieferzeiten start function get_lieferzeitraum($yp_ausland) { // Die Routine geht von 3 Tagen für Lieferdatum_von und 5 Tagen Lieferdatum bis aus. Sollten andere Werte benötigt werden, // // dann die Konstanten c__von und c__bis ändern // Konstanten Inland $c__von_i = 3; // Lieferdatum von in Tagen // $c__bis_i = 7; // Lieferdatum bis in Tagen // $c__heimatland = 81 ; // 81 = Deutschland // wie bereits erwähnt, findet man die Zahlu in der Datenbank // Konstanten Ausland $c__von_a = 5; // Lieferdatum von in Tagen // $c__bis_a = 10; // Lieferdatum bis in Tagen // if ($yp_ausland == $c__heimatland) { // es ist Deutschland // $c__von = $c__von_i; $c__bis = $c__bis_i; } else { $c__von = $c__von_a; $c__bis = $c__bis_a; } $y_von_day = $c__von . ' day'; $lieferdatum_von = strtotime(" . $y_von_day . "); $wochentag_von = strftime("%u",$lieferdatum_von); $y_dazu = 0; if ($wochentag_von == 0) { // es ist ein Sonntag => +1 Tag dazu // $y_dazu = 1; } elseif ($wochentag_von == 6) { // es ist ein Samstag => +2 Tage dazu // $y_dazu = 2; } $y_von_neu = $c__von + $y_dazu; $y_von_neu_day = $y_von_neu . ' day'; $lieferdatum_von = strtotime(" . $y_von_neu_day . "); // Wenn das "Lieferdatum von" schon ein Wochenende war, dann die Anzahl der zu verschiebenen Tage auf das "Lieferdatum bis" hinzuaddieren // $y_bis_start = $c__bis + $y_dazu; $y_bis_day = $y_bis_start . ' day'; $lieferdatum_bis = strtotime(" . $y_bis_day . "); // Überprüfen, ob das "Lieferdatum bis" auf ein Wochenende fällt // $wochentag_bis = strftime("%u",$lieferdatum_bis); $y_dazu=0; if ($wochentag_bis == 0) { // es ist ein Sonntag => +1 Tag dazu // $y_dazu = 1; } elseif ($wochentag_bis == 6) { // es ist ein Samstag => +2 Tage dazu // $y_dazu = 2; } $y_bis_neu = $y_bis_start + $y_dazu; $y_bis_neu_day = $y_bis_neu . ' day'; $lieferdatum_bis = strtotime(" . $y_bis_neu_day . "); $lieferdatum_von = date('d.m.',$lieferdatum_von); $lieferdatum_bis = date('d.m.',$lieferdatum_bis) ; return array($lieferdatum_von, $lieferdatum_bis) ; } // Lieferzeiten ende product_info.php <?php $c__heimatland = 81; // 81 = Deutschland // mit der Zahl kann man sein Heimatland angeben. Das findet mach am Besten in der Datenbank list($lieferdatum_von,$lieferdatum_bis) = get_lieferzeitraum($c__heimatland); $pls_shippingtime = '<span class="pls_basePrice">' . TEXT_LIEFERUNG_PI . $lieferdatum_von . "-" . $lieferdatum_bis . '</span>'; ?> Link to comment Share on other sites More sharing options...
YePix Posted October 15, 2018 Author Share Posted October 15, 2018 Mit besonderem Dank an @Tsimi SQL-Anweisung INSERT INTO configuration_group (configuration_group_id, configuration_group_title, configuration_group_description, sort_order, visible) VALUES ('41', 'Angabe Lieferzeiten', 'Definieren Sie die Angaben der Lieferzeiten für Deutschland in Tagen. Standard von [3 Tage] bis [7 Tage] Ausserhalb Deutschland [5 Tage] bis [10 Tage]', NULL, '1'); INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added, use_function, set_function) VALUES ('Angabe der Lieferzeiten freischalten ?', 'SHOW_PRODUCTS_SHIPPING_TIME_ON', 'true', 'Soll die Angabe der Lieferzeiten bei den Produktdetails freigeschalten werden ?', '41', '1', now(), NULL , 'tep_cfg_select_option(array(\'true\', \'false\'),'); INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) VALUES ('Lieferangabe innerhalb Deutschland von [x] Tagen', 'INFOTEXT_SHIPPING_TIME_OF', '3', 'Lieferangabe innerhalb Deutschland in Tagen. Standard: [zwischen 3] und ...', '41', '10', now(), now()); INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) VALUES ('Lieferangabe innerhalb Deutschland bis [x] Tagen', 'INFOTEXT_SHIPPING_TIME_TO', '7', 'Lieferangabe innerhalb Deutschland in Tagen. Standard: zwischen ... [und 7 Tagen]', '41', '11', now(), now()); INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) VALUES ('Lieferangabe ausserhalb Deutschland von [x] Tagen', 'INFOTEXT_SHIP_TIME_OF_W', '5', 'Lieferangabe ausserhalb Deutschland in Tagen. Standard: [zwischen 5] und ...', '41', '12', now(), now()); INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) VALUES ('Lieferangabe ausserhalb Deutschland bis [x] Tagen', 'INFOTEXT_SHIP_TIME_TO_W', '10', 'Lieferangabe ausserhalb Deutschland in Tagen. Standard: zwischen ... [und 10 Tagen]', '41', '13', now(), now()); product_info.php einfügen unterhalb vom letzten query tag ?>: <?php if ( (tep_session_is_registered('customer_id') == true) || ($id != $customer_id) ) { $c__heimatland = $customer_country_id; list($lieferdatum_von,$lieferdatum_bis) = get_lieferzeitraum($c__heimatland); $pls_shippingtime = '<span class="pls_basePrice">' . TEXT_LIEFERUNG_PI . $lieferdatum_von . "-" . $lieferdatum_bis . '</span><br>'; echo $pls_shippingtime; }else{ $pls_shippingtime = '<span class="pls_basePrice">' . TEXT_SHIPPINGTIME_LOGIN . '</span><br>'; echo $pls_shippingtime; }?> einfügen an gewünschter Stelle: <?php echo $pls_shippingtime;?> einfügen in german.php: define('TEXT_LIEFERUNG_PI', 'Lieferung bei heutiger Zahlung: '); define('TEXT_SHIPPINGTIME_LOGIN', 'Bitte einloggen für Lieferangaben. '); einfügen in english.php: define('TEXT_LIEFERUNG_PI', 'Delivery by todays payment: '); define('TEXT_SHIPPINGTIME_LOGIN', 'Login for delivery info. '); catalog/includes/functions/general.php einfügen vor dem letztem tag ?>: // Lieferzeiten start function get_lieferzeitraum($yp_ausland) { // Die Routine geht von 3 Tagen für Lieferdatum_von und 5 Tagen Lieferdatum bis aus. Sollten andere Werte benötigt werden, // // dann die Konstanten c__von und c__bis ändern // // Konstanten Inland $c__von_i = INFOTEXT_SHIPPING_TIME_OF; // Lieferdatum von in Tagen // $c__bis_i = INFOTEXT_SHIPPING_TIME_TO; // Lieferdatum bis in Tagen // $c__heimatland = 81 ; // 81 = Deutschland oder z.B. 14 für Österreich// // wie bereits erwähnt, findet man die Zahlu in der Datenbank // Konstanten Ausland $c__von_a = INFOTEXT_SHIP_TIME_OF_W; // Lieferdatum von in Tagen // $c__bis_a = INFOTEXT_SHIP_TIME_TO_W; // Lieferdatum bis in Tagen // if ($yp_ausland == $c__heimatland) { // es ist Deutschland // $c__von = $c__von_i; $c__bis = $c__bis_i; } else { $c__von = $c__von_a; $c__bis = $c__bis_a; } $y_von_day = $c__von . ' day'; $lieferdatum_von = strtotime(" . $y_von_day . "); $wochentag_von = strftime("%u",$lieferdatum_von); $y_dazu = 0; if ($wochentag_von == 0) { // es ist ein Sonntag => +1 Tag dazu // $y_dazu = 1; } elseif ($wochentag_von == 6) { // es ist ein Samstag => +2 Tage dazu // $y_dazu = 2; } $y_von_neu = $c__von + $y_dazu; $y_von_neu_day = $y_von_neu . ' day'; $lieferdatum_von = strtotime(" . $y_von_neu_day . "); // Wenn das "Lieferdatum von" schon ein Wochenende war, dann die Anzahl der zu verschiebenen Tage auf das "Lieferdatum bis" hinzuaddieren // $y_bis_start = $c__bis + $y_dazu; $y_bis_day = $y_bis_start . ' day'; $lieferdatum_bis = strtotime(" . $y_bis_day . "); // Überprüfen, ob das "Lieferdatum bis" auf ein Wochenende fällt // $wochentag_bis = strftime("%u",$lieferdatum_bis); $y_dazu=0; if ($wochentag_bis == 0) { // es ist ein Sonntag => +1 Tag dazu // $y_dazu = 1; } elseif ($wochentag_bis == 6) { // es ist ein Samstag => +2 Tage dazu // $y_dazu = 2; } $y_bis_neu = $y_bis_start + $y_dazu; $y_bis_neu_day = $y_bis_neu . ' day'; $lieferdatum_bis = strtotime(" . $y_bis_neu_day . "); $lieferdatum_von = date('d.m.',$lieferdatum_von); $lieferdatum_bis = date('d.m.',$lieferdatum_bis) ; return array($lieferdatum_von, $lieferdatum_bis) ; } // Lieferzeiten ende Link to comment Share on other sites More sharing options...
YePix Posted October 15, 2018 Author Share Posted October 15, 2018 in product_info.php hat sich ein Fehler eingeschlichen. Dieses einfügen: <?php if (SHOW_PRODUCTS_SHIPPING_TIME_ON == 'true') { if ( (tep_session_is_registered('customer_id') == true) || ($id != $customer_id) ) { $c__heimatland = $customer_country_id; list($lieferdatum_von,$lieferdatum_bis) = get_lieferzeitraum($c__heimatland); $pls_shippingtime = '<span class="pls_basePrice">' . TEXT_LIEFERUNG_PI . $lieferdatum_von . "-" . $lieferdatum_bis . '</span><br>'; echo $pls_shippingtime; }else{ $pls_shippingtime = '<span class="pls_basePrice">' . TEXT_SHIPPINGTIME_LOGIN . '</span><br>'; echo $pls_shippingtime; } }?> Link to comment Share on other sites More sharing options...
stephaniusCommi Posted February 28, 2019 Share Posted February 28, 2019 Ich hatte den gleichen Fehler. Vielen dank für eure Lösungen! Haben bei mir euch was gebracht. LG Link to comment Share on other sites More sharing options...
Recommended Posts