Index: /lib/wpsg_basket.class.php
===================================================================
--- /lib/wpsg_basket.class.php	(revision 7304)
+++ /lib/wpsg_basket.class.php	(revision 7305)
@@ -1021,5 +1021,5 @@
 				
 				// Hausnummer
-				if (($custom_config['wpsg_showNr']??'') === '1' && $custom_config['strasse'] != '2' && $custom_config['strasse'] != '1' && wpsg_getStr($this->arCheckout['nr']) == '') {
+				if (wpsg_getStr($custom_config['wpsg_showNr']) === '1' && $custom_config['strasse'] != '2' && $custom_config['strasse'] != '1' && wpsg_getStr($this->arCheckout['nr']) == '') {
 					
 					$this->shop->addFrontendError(__('Bitte die Eingaben im Feld "StraÃe" ÃŒberprÃŒfen!', 'wpsg'));
@@ -1971,7 +1971,7 @@
 			];
 			
-			$arReturn['shipping']['mwst'] = ($arCalculation['shipping'][0]['tax']??0);
-			$arReturn['shipping']['preis_shipping_netto'] = ($arCalculation['shipping'][0]['netto']??0);
-			$arReturn['shipping']['preis_shipping_brutto'] = ($arCalculation['shipping'][0]['brutto']??0);
+			$arReturn['shipping']['mwst'] = wpsg_getStr($arCalculation['shipping'][0]['tax']);
+			$arReturn['shipping']['preis_shipping_netto'] = wpsg_getStr($arCalculation['shipping'][0]['netto']);
+			$arReturn['shipping']['preis_shipping_brutto'] = wpsg_getStr($arCalculation['shipping'][0]['brutto']);
 			
 			if (isset($arCalculation['shipping']))
Index: /model/wpsg_model.class.php
===================================================================
--- /model/wpsg_model.class.php	(revision 7304)
+++ /model/wpsg_model.class.php	(revision 7305)
@@ -88,7 +88,7 @@
 		public static function getInstance($id, $noCache = false)
 		{
-				
+			
 			$class_name = get_called_class();
-			 
+			
 			if (wpsg_isSizedArray($id))
 			{
@@ -100,5 +100,5 @@
 					
 					$arReturn[$_id] = self::getInstance($_id);
-										
+					
 				}
 				
@@ -109,22 +109,39 @@
 			else
 			{
-			
-				if (!array_key_exists($class_name.'_'.$id, self::$_objCache) || $noCache === true)
+				
+				if (!array_key_exists($id, self::$_objCache[$class_name]) || $noCache === true)
 				{
 					
-					$oObject = new $class_name(); 
+					$oObject = new $class_name();
 					$oObject->load($id);
-	
-					self::$_objCache[$class_name.'_'.$id] = $oObject;
-			
+					
+					self::$_objCache[$class_name][$id] = $oObject;
+					
 				}
-					
-				return self::$_objCache[$class_name.'_'.$id];
+				
+				return self::$_objCache[$class_name][$id];
 				
 			}
+			
+		} // public abstract static function getInstance($id)
+		
+		public static function clearCache($id = false) {
+			
+			$class_name = get_called_class();
+			
+			if ($id === false) {
 				
-		} // public abstract static function getInstance($id)
+				unset(self::$_objCache[$class_name]);
+				
+				self::$_objCache[$class_name] = [];
+				
+			}
+			else {
+				
+				unset(self::$_objCache[$class_name][$id]);
+				
+			}
+			
+		}
 				
 	} // class wpsg_model
-
-?>
Index: /mods/mod_converter/M1_Converter_update.php
===================================================================
--- /mods/mod_converter/M1_Converter_update.php	(revision 7304)
+++ /mods/mod_converter/M1_Converter_update.php	(revision 7305)
@@ -70,5 +70,5 @@
 	    		$data['fax'] = $k['fax'];
 	    		$data['strasse'] = $k['strasse'];
-	    		$data['nr'] = ($k['nr']??'');
+	    		$data['nr'] = wpsg_getStr($k['nr']);
 	    		$data['plz'] = $k['plz'];
 	    		$data['ort'] = $k['ort'];
Index: /mods/mod_statistics/wpsg_customerMap.class.php
===================================================================
--- /mods/mod_statistics/wpsg_customerMap.class.php	(revision 7304)
+++ /mods/mod_statistics/wpsg_customerMap.class.php	(revision 7305)
@@ -57,5 +57,5 @@
 				{
 					 
-					$arLongLat = $this->geocode($c['plz'].' '.$c['ort'].','.$c['strasse'].rtrim(' '.($c['nr']??'')));
+					$arLongLat = $this->geocode($c['plz'].' '.$c['ort'].','.$c['strasse'].rtrim(' '.wpsg_getStr($c['nr'])));
 
 					if ($arLongLat !== null)
Index: /mods/wpsg_mod_addressvalidation.class.php
===================================================================
--- /mods/wpsg_mod_addressvalidation.class.php	(revision 7304)
+++ /mods/wpsg_mod_addressvalidation.class.php	(revision 7305)
@@ -234,5 +234,5 @@
 									$_SESSION['wpsg']['errorFields'][] = 'shipping_strasse';
 									
-									if (($pflicht['wpsg_showNr']??'') === '1') {
+									if (wpsg_getStr($pflicht['wpsg_showNr']) === '1') {
 									
 										$_SESSION['wpsg']['errorFields'][] = 'shipping_nr';
Index: /mods/wpsg_mod_coverletter.class.php
===================================================================
--- /mods/wpsg_mod_coverletter.class.php	(revision 7304)
+++ /mods/wpsg_mod_coverletter.class.php	(revision 7305)
@@ -187,6 +187,6 @@
 			}
 			
-			$this->shop->update_option('wpsg_mod_coverletter_subject', ($_REQUEST['wpsg_mod_coverletter_subject']??'Anschreiben'));
-			$this->shop->update_option('wpsg_mod_coverletter_text',($_REQUEST['wpsg_mod_coverletter_text']??''));
+			$this->shop->update_option('wpsg_mod_coverletter_subject', wpsg_getStr($_REQUEST['wpsg_mod_coverletter_subject'],'Anschreiben'));
+			$this->shop->update_option('wpsg_mod_coverletter_text',wpsg_getStr($_REQUEST['wpsg_mod_coverletter_text']));
 			$this->shop->update_option("wpsg_mod_coverletter_logo_position", $wpsg_mod_coverletter_logo_position?$wpsg_mod_coverletter_logo_position:null);
 			$this->shop->update_option("wpsg_mod_coverletter_logo_transparency", $_REQUEST['wpsg_mod_coverletter_logo_transparency']);
Index: /mods/wpsg_mod_export.class.php
===================================================================
--- /mods/wpsg_mod_export.class.php	(revision 7304)
+++ /mods/wpsg_mod_export.class.php	(revision 7305)
@@ -174,4 +174,6 @@
 			$arProfile = array_values($_REQUEST['wpsg_mod_export_profile']);
 			
+			set_time_limit(300);
+			
 			parse_str($_REQUEST['filter'], $filter);
 			if (!wpsg_isSizedArray($filter['filter'])) $filter['filter'] = array();
@@ -812,5 +814,5 @@
 			$this->loadFields();
 			
-			$arData = wpsg_order::find($arOrderFilter); 
+			$arData = wpsg_order::find($arOrderFilter, false); 
 												
             $tmpfname = tempnam($this->getTmpFilePath(), "wpsg");
@@ -837,6 +839,5 @@
             }
             
-            foreach ($arData as $oOrder) 
-            {
+            foreach ($arData as $order_id) {
                 
 				$row = array();
@@ -848,5 +849,5 @@
                     {
 
-                        $row[] = $this->getValue($f, $profil['field_delimiter'], $oOrder->id);
+                        $row[] = $this->getValue($f, $profil['field_delimiter'], $order_id);
                         
                     }
@@ -867,5 +868,5 @@
                             `".WPSG_TBL_ORDERPRODUCT."` AS OP 
                         WHERE 
-                            OP.`o_id` = '".wpsg_q($oOrder->id)."'
+                            OP.`o_id` = '".wpsg_q($order_id)."'
                     ");
                     
@@ -878,5 +879,5 @@
                         {
 
-                            $row[] = $this->getValue($f, $profil['field_delimiter'], $oOrder->id, $p['p_id'], $p['product_index'], $p['productkey'], $p['order_product_id']);
+                            $row[] = $this->getValue($f, $profil['field_delimiter'], $order_id, $p['p_id'], $p['product_index'], $p['productkey'], $p['order_product_id']);
                                                                 
                         }
@@ -887,6 +888,23 @@
                     
                 }
-                
-            } // foreach arData
+	
+				if (\memory_get_usage() > 200000) {
+		
+					$this->arCache = [];
+		
+				}
+	
+				wpsg_product::clearCache();
+				wpsg_order::clearCache($order_id);
+				wpsg_customer::clearCache();
+				wpsg_order_product::clearCache();
+	
+				$this->shop->cache->clearOrderCache(false);
+				$this->shop->cache->clearProductCache(false);
+				$this->shop->cache->clearKundenCache(false);
+	
+				gc_collect_cycles ();
+	
+			} // foreach arData
              
             foreach ($arExportData as $row)
Index: /mods/wpsg_mod_kundenkontakt.class.php
===================================================================
--- /mods/wpsg_mod_kundenkontakt.class.php	(revision 7304)
+++ /mods/wpsg_mod_kundenkontakt.class.php	(revision 7305)
@@ -128,5 +128,5 @@
 		{
 			
-			$_REQUEST['do'] = $_REQUEST['do']??'';
+			$_REQUEST['do'] = wpsg_getStr($_REQUEST['do']);
 			
 			if ($_REQUEST['do'] === 'kk_switchTemplate') {
@@ -218,5 +218,5 @@
 		public function laender_edit() {
 						
-			echo wpsg_drawForm_Textarea('country[telprefix]', __('MÃ¶gliche Vorwahlen fÃŒr SMS Versand. (kommagetrennt)', 'wpsg'),($this->shop->view['land']['telprefix']??''), ['help' => 'country_telprefix']);
+			echo wpsg_drawForm_Textarea('country[telprefix]', __('MÃ¶gliche Vorwahlen fÃŒr SMS Versand. (kommagetrennt)', 'wpsg'),wpsg_getStr($this->shop->view['land']['telprefix']), ['help' => 'country_telprefix']);
 			
 		}
@@ -293,5 +293,5 @@
 			$send_sms_return = substr($result, 0, 3); 
 						
-			return array($send_sms_return, (self::$arSMSStatus[$send_sms_return]??__('Unbekannte API Antwort', 'wpsg')), $result);
+			return array($send_sms_return, wpsg_getStr(self::$arSMSStatus[$send_sms_return], __('Unbekannte API Antwort', 'wpsg')), $result);
 			
 		}
Index: /mods/wpsg_mod_rechnungen.class.php
===================================================================
--- /mods/wpsg_mod_rechnungen.class.php	(revision 7304)
+++ /mods/wpsg_mod_rechnungen.class.php	(revision 7305)
@@ -617,5 +617,5 @@
 					CA.`land` AS `land`,
 					CA.`tel` AS `tel`,
-					C.`geb`, C.`ustidnr`, C.`email`, C.`id`, C.`knr`, C.`wp_user_id`
+					C.`geb`, C.`ustidnr`, C.`email`, C.`id`, C.`knr`
 				FROM
 					`".WPSG_TBL_KU."` AS C
Index: /views/mods/mod_auftragsbestaetigung/auftragsbestaetigung.phtml
===================================================================
--- /views/mods/mod_auftragsbestaetigung/auftragsbestaetigung.phtml	(revision 7304)
+++ /views/mods/mod_auftragsbestaetigung/auftragsbestaetigung.phtml	(revision 7305)
@@ -10,5 +10,5 @@
 <?php echo wpsg_pad_right(__('Firma', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['firma']; ?> 
 <?php echo wpsg_pad_right(__('Name', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['vname']; ?> <?php echo $this->view['basket']['checkout']['name']; ?> 
-<?php echo wpsg_pad_right(__('StraÃe', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['strasse'].rtrim(' '.($this->view['basket']['checkout']['nr']??'')); ?>
+<?php echo wpsg_pad_right(__('StraÃe', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['strasse'].rtrim(' '.wpsg_getStr($this->view['basket']['checkout']['nr'])); ?>
 <?php echo wpsg_pad_right(__('Land', 'wpsg').':', 35); ?><?php echo $this->db->fetchOne("SELECT `name` FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->view['basket']['checkout']['land'])."' "); ?> 
 <?php if (trim($this->view['basket']['checkout']['ustidnr']) != "") { ?>
@@ -35,5 +35,5 @@
 <?php echo wpsg_pad_right(__('Firma', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['firma']; ?> 
 <?php echo wpsg_pad_right(__('Name', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['vname']; ?> <?php echo $this->view['basket']['checkout']['name']; ?> 
-<?php echo wpsg_pad_right(__('StraÃe', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['strasse'].rtrim(' '.($this->view['basket']['checkout']['nr']??'')); ?>    
+<?php echo wpsg_pad_right(__('StraÃe', 'wpsg').':', 35); ?><?php echo $this->view['basket']['checkout']['strasse'].rtrim(' '.wpsg_getStr($this->view['basket']['checkout']['nr'])); ?>    
 <?php echo wpsg_pad_right(__('Land', 'wpsg').':', 35); ?><?php echo $this->db->fetchOne("SELECT `name` FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->view['basket']['checkout']['land'])."' "); ?> 
 <?php if (trim($this->view['basket']['checkout']['ustidnr']) != "") { ?>
Index: /views/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml
===================================================================
--- /views/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml	(revision 7304)
+++ /views/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml	(revision 7305)
@@ -48,5 +48,5 @@
                     <?php echo wpsg_drawForm_Input('dialog_shipping_strasse', __('StraÃe', 'wpsg'), $this->view['wpsg_mod_shippingadress']['shipping_strasse']); ?>
 						
-					<?php if (($this->view['pflicht']['wpsg_showNr']??'') === '1') { ?>
+					<?php if (wpsg_getStr($this->view['pflicht']['wpsg_showNr']) === '1') { ?>
 	
 						<?php echo wpsg_drawForm_Input('dialog_shipping_nr', __('Hausnummer', 'wpsg'), $this->view['wpsg_mod_shippingadress']['shipping_nr']); ?>
@@ -80,5 +80,5 @@
 
     ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_vname']); ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_name']); ?><br />
-    <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_strasse'].rtrim(' '.($this->view['wpsg_mod_shippingadress']['shipping_nr']??''))); ?><br />
+    <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_strasse'].rtrim(' '.wpsg_getStr($this->view['wpsg_mod_shippingadress']['shipping_nr']))); ?><br />
 	<?php $lk = $this->view['wpsg_mod_shippingadress']['oCountry']->getShorttext(); ?>
     <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_plz']); ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_ort']); ?> <?php echo wpsg_hspc($lk); ?><br />
Index: /views/mods/mod_si/cannotorder.phtml
===================================================================
--- /views/mods/mod_si/cannotorder.phtml	(revision 7304)
+++ /views/mods/mod_si/cannotorder.phtml	(revision 7305)
@@ -12,5 +12,5 @@
 		'firstname' => $this->view['basket']['checkout']['vname'], // Vorname des Kunden, z.B. "Max"
 		'lastname' => $this->view['basket']['checkout']['name'], // Nachname des Kunden, z.B. "Mustermann"
-		'street' => $this->view['basket']['checkout']['strasse'].rtrim(' '.($this->view['basket']['checkout']['nr']??'')), // StraÃe und Hausnummer des Kunden, z.B. "Unter den Linden 77"
+		'street' => $this->view['basket']['checkout']['strasse'].rtrim(' '.wpsg_getStr($this->view['basket']['checkout']['nr'])), // StraÃe und Hausnummer des Kunden, z.B. "Unter den Linden 77"
 		'city' => $this->view['basket']['checkout']['ort'], // Wohnort des Kunden, z.B. "Berlin"
 		'zipcode' => $this->view['basket']['checkout']['plz'], // PLZ des Kunden, z.B. "10117"
Index: /views/mods/mod_skrill/order_done.phtml
===================================================================
--- /views/mods/mod_skrill/order_done.phtml	(revision 7304)
+++ /views/mods/mod_skrill/order_done.phtml	(revision 7305)
@@ -27,5 +27,5 @@
 	<input type="hidden" name="lastname" value="<?php echo wpsg_hspc($this->view['kunde']['name']); ?>" />
 	<input type="hidden" name="date_of_birth" value="<?php echo wpsg_hspc(date('dmY', strtotime($this->view['kunde']['geb']))); ?>" />
-	<input type="hidden" name="address" value="<?php echo wpsg_hspc(rtrim($this->view['kunde']['strasse'].' '.($this->view['kunde']['nr']??''))); ?>" />
+	<input type="hidden" name="address" value="<?php echo wpsg_hspc(rtrim($this->view['kunde']['strasse'].' '.wpsg_getStr($this->view['kunde']['nr']))); ?>" />
 	<input type="hidden" name="phone_number" value="<?php echo wpsg_hspc($this->view['kunde']['tel']); ?>" />
 	<input type="hidden" name="postal_code" value="<?php echo wpsg_hspc($this->view['kunde']['plz']); ?>" />
Index: /views/order/backendEdit/editPayShipping.phtml
===================================================================
--- /views/order/backendEdit/editPayShipping.phtml	(revision 7304)
+++ /views/order/backendEdit/editPayShipping.phtml	(revision 7305)
@@ -35,6 +35,6 @@
     if ($this->getBackendTaxview() === WPSG_BRUTTO) {
         
-    	$price_shipping = wpsg_ff(($arCalculation['shipping'][0]['brutto_single']??0), $this->get_option('wpsg_currency'));
-		$price_payment = wpsg_ff(($arCalculation['payment'][0]['brutto_single']??0), $this->get_option('wpsg_currency'));
+    	$price_shipping = wpsg_ff(wpsg_getInt($arCalculation['shipping'][0]['brutto_single']), $this->get_option('wpsg_currency'));
+		$price_payment = wpsg_ff(wpsg_getInt($arCalculation['payment'][0]['brutto_single']), $this->get_option('wpsg_currency'));
     	         
         $price_suffix = ' ('.__('Brutto', 'wpsg').')';
@@ -42,6 +42,6 @@
     } else {
 	
-		$price_shipping = wpsg_ff(($arCalculation['shipping'][0]['netto_single']??0), $this->get_option('wpsg_currency'));
-		$price_payment = wpsg_ff(($arCalculation['payment'][0]['netto_single']??0), $this->get_option('wpsg_currency'));
+		$price_shipping = wpsg_ff(wpsg_getInt($arCalculation['shipping'][0]['netto_single']), $this->get_option('wpsg_currency'));
+		$price_payment = wpsg_ff(wpsg_getInt($arCalculation['payment'][0]['netto_single']), $this->get_option('wpsg_currency'));
 
         $price_suffix = ' ('.__('Netto', 'wpsg').')';
Index: /views/order/view_customerdata.phtml
===================================================================
--- /views/order/view_customerdata.phtml	(revision 7304)
+++ /views/order/view_customerdata.phtml	(revision 7305)
@@ -54,5 +54,5 @@
 					<?php echo wpsg_drawForm_Input('dialog_strasse', __('StraÃe', 'wpsg'), $this->view['data']['strasse']); ?>
 	
-					<?php if (($this->view['pflicht']['wpsg_showNr']??'') === '1') { ?>
+					<?php if (wpsg_getStr($this->view['pflicht']['wpsg_showNr']) === '1') { ?>
 		
 						<?php echo wpsg_drawForm_Input('dialog_nr', __('Hausnummer', 'wpsg'), $this->view['data']['nr']); ?>
@@ -115,5 +115,5 @@
     <?php if ($this->view['pflicht']['strasse'] != '2') { ?>
 	
-		<?php echo wpsg_hspc($this->view['data']['strasse']); ?> <?php echo wpsg_hspc(($this->view['data']['nr']??'')); ?><br />
+		<?php echo wpsg_hspc($this->view['data']['strasse']); ?> <?php echo wpsg_hspc(wpsg_getStr($this->view['data']['nr'])); ?><br />
 		 
     <?php } ?>                    
Index: /views/warenkorb/overview.phtml
===================================================================
--- /views/warenkorb/overview.phtml	(revision 7304)
+++ /views/warenkorb/overview.phtml	(revision 7305)
@@ -70,5 +70,5 @@
 			<?php } ?>
 			<?php if ($this->view['pflicht']['strasse'] != '2') { ?>
-				<?php echo wpsg_hspc($this->view['basket']['checkout']['strasse'].rtrim(' '.($this->view['basket']['checkout']['nr']??''))); ?><br />
+				<?php echo wpsg_hspc($this->view['basket']['checkout']['strasse'].rtrim(' '.wpsg_getStr($this->view['basket']['checkout']['nr']))); ?><br />
 			<?php } ?>
 			<?php if ($this->view['pflicht']['plz'] != '2') { ?>
@@ -146,5 +146,5 @@
 			<?php } ?>	
 			<?php if ($this->view['pflicht']['strasse'] != '2') { ?>
-				<?php echo wpsg_hspc($this->view['basket']['checkout']['strasse'].rtrim(' '.($this->view['basket']['checkout']['nr']??''))); ?><br />
+				<?php echo wpsg_hspc($this->view['basket']['checkout']['strasse'].rtrim(' '.wpsg_getStr($this->view['basket']['checkout']['nr']))); ?><br />
 			<?php } ?>
 			<?php if ($this->view['pflicht']['plz'] != '2') { ?>
