Index: /mods/wpsg_mod_abo.class.php
===================================================================
--- /mods/wpsg_mod_abo.class.php	(revision 7825)
+++ /mods/wpsg_mod_abo.class.php	(revision 7826)
@@ -514,5 +514,51 @@
 		
 		public function cron() {
- 		    
+
+			$handledAboIDs = [];
+
+			$arAboInformation = $this->db->fetchAssoc("
+                SELECT
+                    A.*
+                FROM
+                    `".WPSG_TBL_ABO."` AS A
+                WHERE
+                    A.`status` = '".wpsg_q(self::STATUS_ACTIVE)."' AND
+                    A.`inform_autorenew` != '1'
+            ");
+
+			// DATEDIFF(A.`expiration`, NOW()) = ".wpsg_q($this->shop->get_option('wpsg_mod_abo_autoexpire_informationtime'))." AND
+
+            foreach ($arAboInformation as $a) {
+
+                $oOrderProduct = wpsg_order_product::getInstance(intval($a['order_product_id']));
+                $product_id = $oOrderProduct->getProductId();
+
+                $wpsg_mod_abo_autoexpire_informationtime = intval($this->getSetting('wpsg_mod_abo_autoexpire_informationtime', $product_id)); // Benachrichtigung
+                $interval = intval(date_diff(date_create($a['expiration']), date_create(date('Y-m-d')))->format('%a')); // Tage bis zum auslaufen
+
+                if ($wpsg_mod_abo_autoexpire_informationtime > 0 && $interval <= $wpsg_mod_abo_autoexpire_informationtime) {
+
+                    $wpsg_mod_abo_expiremode = $this->getSetting('wpsg_mod_abo_premode', $product_id);
+
+                    if ($wpsg_mod_abo_expiremode === self::EXPIRE_MAIL) {
+
+                        $this->sendAboRenewInformation($a['order_id'], $a['order_product_id']);
+
+                        $this->db->UpdateQuery(WPSG_TBL_ABO, array(
+                            'inform_autorenew' => '1'
+                        ), "`id` = '".wpsg_q($a['id'])."'");
+
+                    } else if ($wpsg_mod_abo_expiremode === self::EXPIRE_AUTO) {
+
+                    	$this->autoExtendOrder($a['order_id'], $a['order_product_id']);
+
+                    }
+
+                    $handledAboIDs[] = intval($a['id']);
+
+                }
+
+            }
+
 			$arAboExpiration = $this->db->fetchAssoc("
 				SELECT
@@ -523,8 +569,10 @@
 					A.`expiration` < NOW() AND
 					A.`status` = '".wpsg_q(self::STATUS_ACTIVE)."' AND
-					A.`inform_expiration` != '1'
+					A.`inform_expiration` != '1' 					
 			");
   
 			foreach ($arAboExpiration as $a) {
+
+				if (in_array(intval($a['id']), $handledAboIDs)) continue;
 
 			    $oOrderProduct = wpsg_order_product::getInstance(intval($a['order_product_id']));
@@ -562,46 +610,4 @@
 
 			}
- 
-            $arAboInformation = $this->db->fetchAssoc("
-                SELECT
-                    A.*
-                FROM
-                    `".WPSG_TBL_ABO."` AS A
-                WHERE
-                    A.`status` = '".wpsg_q(self::STATUS_ACTIVE)."' AND
-                    A.`inform_autorenew` != '1'
-            ");
-			
-			// DATEDIFF(A.`expiration`, NOW()) = ".wpsg_q($this->shop->get_option('wpsg_mod_abo_autoexpire_informationtime'))." AND
-            						
-            foreach ($arAboInformation as $a) {
-                
-                $oOrderProduct = wpsg_order_product::getInstance(intval($a['order_product_id']));                
-                $product_id = $oOrderProduct->getProductId();
-                
-                $wpsg_mod_abo_autoexpire_informationtime = intval($this->getSetting('wpsg_mod_abo_autoexpire_informationtime', $product_id)); // Benachrichtigung
-                $interval = intval(date_diff(date_create($a['expiration']), date_create(date('Y-m-d')))->format('%a')); // Tage bis zum auslaufen
-                
-                if ($wpsg_mod_abo_autoexpire_informationtime > 0 && $interval <= $wpsg_mod_abo_autoexpire_informationtime) {
-                    
-                    $wpsg_mod_abo_expiremode = $this->getSetting('wpsg_mod_abo_premode', $product_id);
-
-                    if ($wpsg_mod_abo_expiremode === self::EXPIRE_MAIL) {
-                    
-                        $this->sendAboRenewInformation($a['order_id'], $a['order_product_id']);
-                    
-                        $this->db->UpdateQuery(WPSG_TBL_ABO, array(
-                            'inform_autorenew' => '1'
-                        ), "`id` = '".wpsg_q($a['id'])."'");
-                        
-                    } else if ($wpsg_mod_abo_expiremode === self::EXPIRE_AUTO) {
-
-                    	$this->autoExtendOrder($a['order_id'], $a['order_product_id']);
-
-                    }
-                    
-                }
-                
-            }                
             
             $this->shop->update_option('wpsg_mod_abo_cron_lastrun', time());
@@ -1311,5 +1317,5 @@
         	
         } // private function sendCustomerMailResign($abo_status)
-        
+
         /**
          * Erstellt automatisch eine Bestellung wenn ein Abo ausgelaufen ist
