Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 7997)
+++ /controller/wpsg_ShopController.class.php	(revision 7998)
@@ -868,5 +868,5 @@
 
 				// Hier mÃŒssen die Ãnderungen der Session gespeichert werden
-				if (wpsg_isSizedArray($_REQUEST['wpsg']['checkout'])) {
+				if (($_REQUEST['wpsg']['checkout']??'') !== '') {
 
 					$_SESSION['wpsg']['checkout'] = wpsg_xss(
@@ -1170,5 +1170,5 @@
 			if ($fixView) $view = $this->view;
 			
-		    \do_action('wpsg_'.$func_name, $arParam);
+		    \do_action('wpsg_'.$func_name, $arParam + ['view' => $this->view]);
 		    
 			foreach ($this->arModule as $m_key => $m) {
Index: /controller/wpsg_SystemController.class.php
===================================================================
--- /controller/wpsg_SystemController.class.php	(revision 7997)
+++ /controller/wpsg_SystemController.class.php	(revision 7998)
@@ -656,4 +656,7 @@
 		public function render($file, $out = true) {
 
+			$file_key = preg_replace(['/(.*)wpshopgermany-free/', '/\/\//'], ['', '/'], $file);
+			$this->view = \apply_filters('wpsg_render_'.$file_key, $this->view, $file_key);
+			
 			// Ticket #572 doppelte Slash stÃ¶ren
 			$file = str_replace('//', '/', $file);
Index: /lib/wpsg_basket.class.php
===================================================================
--- /lib/wpsg_basket.class.php	(revision 7997)
+++ /lib/wpsg_basket.class.php	(revision 7998)
@@ -898,6 +898,6 @@
 					$this->shop->cache->clearKundenCache($k_id);
 					
-					$this->shop->callMods('basket_save_done', array(&$o_id, &$k_id, &$this));
-					$this->shop->callMods('basket_save_done_array', array(&$o_id, &$k_id, &$arBasket));
+					$this->shop->callMods('basket_save_done', array($o_id, $k_id, &$this));
+					$this->shop->callMods('basket_save_done_array', array($o_id, $k_id, &$arBasket));
 					
 					$this->shop->basket->initFromDB($o_id);
Index: /mods/wpsg_mod_abo.class.php
===================================================================
--- /mods/wpsg_mod_abo.class.php	(revision 7997)
+++ /mods/wpsg_mod_abo.class.php	(revision 7998)
@@ -427,10 +427,10 @@
 
 							// Das Abo ist ausgelaufen
-							$abo_expiration = $this->getAboExpiration($product_data['id'], $product['menge'], time());
+							$abo_expiration = $this->getAboExpiration($product_data['id'], $product['menge'], time(), true);
 
 						} else {
 
 							// Abo wurde verlÃ€ngert und der Zeitraum wird an die alte VerlÃ€ngerung angehÃ€ngt
-							$abo_expiration = $this->getAboExpiration($product_data['id'], $product['menge'], strtotime($abo_entry['expiration']));
+							$abo_expiration = $this->getAboExpiration($product_data['id'], $product['menge'], strtotime($abo_entry['expiration']), true);
 
 						}
@@ -472,5 +472,5 @@
 
 							// Es ist ein Abo Produkt in der Bestellung
-							$abo_expiration = $this->getAboExpiration($product_data['id'], $product['menge'], time());
+							$abo_expiration = $this->getAboExpiration($product_data['id'], $product['menge'], time(), true);
 
 							$abo_data_db = array(
@@ -537,5 +537,6 @@
 
 			date_default_timezone_set('Europe/Berlin');
-									
+			$this->shop->db->ImportQuery("test", ['date' => date('Y-m-d H:i:s', strtotime('+1day', time()))]);
+
 			$upload_dir = wp_upload_dir();
 			$pid_file = $upload_dir['basedir'].'/wpsg_cron_abo';
@@ -1641,9 +1642,10 @@
 		 * @param int $menge Anzahl an gekauften Produkten
 		 */
-		public function getAboExpiration($product_id, $menge, $start) {
+		public function getAboExpiration($product_id, $menge, $start, $noTimeZoneOffset = false) {
 
 			$product_data = $this->shop->cache->loadProduct($product_id);
 
-			return wpsg_date('Y-m-d H:i:s', $start + $product_data['wpsg_mod_abo_durration'] * 24 * 60 * 60 * $menge);
+			if ($noTimeZoneOffset) return date('Y-m-d H:i:s', $start + $product_data['wpsg_mod_abo_durration'] * 24 * 60 * 60 * $menge);
+			else return wpsg_date('Y-m-d H:i:s', $start + $product_data['wpsg_mod_abo_durration'] * 24 * 60 * 60 * $menge);
 
 		} // public function getAboExpiration($product_id, $menge)
Index: /mods/wpsg_mod_basic.class.php
===================================================================
--- /mods/wpsg_mod_basic.class.php	(revision 7997)
+++ /mods/wpsg_mod_basic.class.php	(revision 7998)
@@ -512,5 +512,5 @@
 		 * Wird nach dem Rendern des Produktes im Basket aufgerufen (aus basket.phtml) Nach den Produkten, nur einmal
 		 */
-		public function basket_row_afterproducts(&$p, $i) { }
+		public function basket_row_afterproducts() { }
 		
 		/** Wird im Checkout und OnePageCheckout aufgerufen innerhalb der Kundendaten */
Index: /mods/wpsg_mod_basketteaser.class.php
===================================================================
--- /mods/wpsg_mod_basketteaser.class.php	(revision 7997)
+++ /mods/wpsg_mod_basketteaser.class.php	(revision 7998)
@@ -78,5 +78,5 @@
 		} // public function basket_inner_prebutton(&$basket_view)
 		
-		public function basket_row_afterproducts(&$p, $i) {
+		public function basket_row_afterproducts() {
 			
 			if ($this->shop->get_option('wpsg_mod_basketteaser_show') != '1') return;
@@ -98,5 +98,5 @@
 			}
 			
-		} // public function basket_row_afterproducts(&$p, $i)
+		} // public function basket_row_afterproducts()
 
 		public function product_addedit_content(&$product_content, &$product_data)
Index: /mods/wpsg_mod_orderupload.class.php
===================================================================
--- /mods/wpsg_mod_orderupload.class.php	(revision 7997)
+++ /mods/wpsg_mod_orderupload.class.php	(revision 7998)
@@ -405,5 +405,5 @@
             $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_orderupload/basket_row.phtml');
             
-        } // public function basket_row_afterproducts(&$p, $i)
+        } // public function basket_row_afterproducts()
 
         public function basket_after(&$basket_view) {
Index: /views/mods/mod_productvariants/basket_row.phtml
===================================================================
--- /views/mods/mod_productvariants/basket_row.phtml	(revision 7997)
+++ /views/mods/mod_productvariants/basket_row.phtml	(revision 7998)
@@ -18,11 +18,12 @@
 		
 		<?php if (is_numeric($vari)) { ?>
-		<?php echo $value['name'] ?>: 
-		<strong>
-		<?php echo $value['value'] ?>; <?php echo __('Art. Nr.', 'wpsg').': '.$value['artnr'] ?>; 
-		<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($value['preis']))) { ?>
-			(<?php echo wpsg_ff($value['preis'], $this->get_option('wpsg_currency')); ?>)
-		<?php } ?>
-		<br />
+            <?php echo $value['name'] ?>: 
+            <strong>
+            <?php echo $value['value'] ?>; <?php echo __('Art. Nr.', 'wpsg').': '.$value['artnr'] ?>; 
+            <?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($value['preis']))) { ?>
+                (<?php echo wpsg_ff($value['preis'], $this->get_option('wpsg_currency')); ?>)
+            <?php } ?>
+            <br />
+            </strong>
 		<?php } ?>
 		<?php } ?>							
@@ -30,5 +31,5 @@
 		<?php echo $this->view['variante']['key']; ?>
 		<?php } ?>
-		</strong>
+		
 	</div> 
 </div>
Index: /views/mods/mod_relatedproducts/list.phtml
===================================================================
--- /views/mods/mod_relatedproducts/list.phtml	(revision 7997)
+++ /views/mods/mod_relatedproducts/list.phtml	(revision 7998)
@@ -12,5 +12,5 @@
 <?php foreach ($this->view['wpsg_mod_relatedproducts']['data'] as $p) { ?>
 	<span id="wpsg_rp_<?php echo $p['id']; ?>">
-		<?php echo wpsg_drawForm_Select('wpsg_mod_relatedproduct['.$p['id'].']', $p['name'], $this->view['wpsg_mod_relatedproducts']['arTemplates'], $p['template'], array('icon' => 'wpsg_icon_remove glyphicon glyphicon-trash')); ?>
+		<?php echo wpsg_drawForm_Select('wpsg_mod_relatedproduct['.$p['id'].']', '<a href="'.wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Produkt&action=edit&edit_id='.$p['product_id'], 'wpsg-product-edit-'.$p['product_id']).'">'.$p['name'].'</p>', $this->view['wpsg_mod_relatedproducts']['arTemplates'], $p['template'], array('icon' => 'wpsg_icon_remove glyphicon glyphicon-trash')); ?>
 	</span>
 	<div class="wpsg_clear"></div>
Index: /views/warenkorb/basket.phtml
===================================================================
--- /views/warenkorb/basket.phtml	(revision 7997)
+++ /views/warenkorb/basket.phtml	(revision 7998)
@@ -145,5 +145,5 @@
 		<div class="basket_sum_wrap">
 
-			<?php $this->callMods('basket_row_afterproducts', array(&$p, $i)); ?>
+			<?php $this->callMods('basket_row_afterproducts', []); ?>
 
 			<?php $bLine = false; ?>
