modules_update($row['ID']); // Handle membership level change if ($further_membership_arr['ID'] == MEMBERSHIP_ID_STANDARD) { $mail_ret = mem_expiration_letter($row['ID'], $last_membership_arr['Name'], -1); if ($mail_ret) { $expire_letters++; } } } } elseif ($current_membership_arr['ID'] != MEMBERSHIP_ID_STANDARD) { // Calculate further UNIX Timestamp $further_timestamp = time() + $expire_notification_days * 24 * 3600; $further_membership_arr = getMemberMembershipInfo($row['ID'], $further_timestamp); if ($current_membership_arr['ID'] != $further_membership_arr['ID'] && $further_membership_arr['ID'] == MEMBERSHIP_ID_STANDARD) { if (!$expire_notify_once || abs($further_timestamp - time()) < 24 * 3600) { $mail_ret = mem_expiration_letter($row['ID'], $current_membership_arr['Name'], (int) (($current_membership_arr['DateExpires'] - time()) / (24 * 3600))); if ($mail_ret) { $expire_letters++; } } } } } echo "Send membership expire letters: {$expire_letters} letters\n"; //======================================================================================================================== // clear tmp folder -------------------------------------------------------------------------- del_old_all_files(); // ---------------------------------------------------------------------------------- clean_database(); modules_proceed(); finish();
function processing() { global $MODE; // - Defaults - $MODE = "_MAIL_"; //$MODE = "_LIVE_"; $DAY = "_OBEY_"; //$DAY = "_FORCE_"; define('NON_VISUAL_PROCESSING', 'YES'); // - Always finish set_time_limit(36000); ignore_user_abort(); // - Parameters check - for ($i = 0; strlen($argv[$i]); $i++) { switch ($argv[$i]) { case "--live": $MODE = "_LIVE_"; break; case "--mail": $MODE = "_MAIL_"; break; case "--force-day": $DAY = "_FORCE_"; break; case "--obey-day": $DAY = "_OBEY_"; break; } } if ($MODE != "_LIVE_") { ob_start(); } $day = date("d"); if (getParam("cmdDay") == $day && $DAY == "_OBEY_") { echo "Already done today, bailing out\n"; $this->finish(); return; } setParam("cmdDay", $day); //======================================================================================================================== // - Membership check - echo "\n- Membership expiration letters -\n"; $expire_notification_days = getParam("expire_notification_days"); $expire_notify_once = getParam("expire_notify_once"); $expire_letters = 0; $exp_res = db_res("SELECT `ID` FROM `Profiles`", 0); while ($row = mysql_fetch_array($exp_res)) { $current_membership_arr = getMemberMembershipInfo($row['ID']); // If expire_notification_days is -1 then notify after expiration if ($current_membership_arr['ID'] == MEMBERSHIP_ID_STANDARD && $expire_notification_days == -1) { // Calculate last UNIX Timestamp $last_timestamp = time() - 24 * 3600; $last_membership_arr = getMemberMembershipInfo($row['ID'], $last_timestamp); if ($current_membership_arr['ID'] != $last_membership_arr['ID']) { if ($further_membership_arr['ID'] == MEMBERSHIP_ID_STANDARD) { $mail_ret = mem_expiration_letter($row['ID'], $last_membership_arr['Name'], -1); if ($mail_ret) { $expire_letters++; } } } } elseif ($current_membership_arr['ID'] != MEMBERSHIP_ID_STANDARD) { // Calculate further UNIX Timestamp $further_timestamp = time() + $expire_notification_days * 24 * 3600; $further_membership_arr = getMemberMembershipInfo($row['ID'], $further_timestamp); if ($current_membership_arr['ID'] != $further_membership_arr['ID'] && $further_membership_arr['ID'] == MEMBERSHIP_ID_STANDARD) { if (!$expire_notify_once || abs($further_timestamp - $current_membership_arr['DateExpires']) < 24 * 3600) { $mail_ret = mem_expiration_letter($row['ID'], $current_membership_arr['Name'], (int) (($current_membership_arr['DateExpires'] - time()) / (24 * 3600))); if ($mail_ret) { $expire_letters++; } } } } } echo "Send membership expire letters: {$expire_letters} letters\n"; //======================================================================================================================== // clear tmp folder -------------------------------------------------------------------------- $this->del_old_all_files(); // ---------------------------------------------------------------------------------- $this->clean_database(); $this->finish(); }
function processing() { global $MODE; // - Defaults - $MODE = "_MAIL_"; //$MODE = "_LIVE_"; $DAY = "_OBEY_"; //$DAY = "_FORCE_"; define('NON_VISUAL_PROCESSING', 'YES'); // - Always finish set_time_limit(36000); ignore_user_abort(); // - Parameters check - for ($i = 0; strlen($argv[$i]); $i++) { switch ($argv[$i]) { case "--live": $MODE = "_LIVE_"; break; case "--mail": $MODE = "_MAIL_"; break; case "--force-day": $DAY = "_FORCE_"; break; case "--obey-day": $DAY = "_OBEY_"; break; } } if ($MODE != "_LIVE_") { ob_start(); } $day = date("d"); if (getParam("cmdDay") == $day && $DAY == "_OBEY_") { echo "Already done today, bailing out\n"; $this->finish(); return; } setParam("cmdDay", $day); //======================================================================================================================== // - Send Admin Stats notification $this->processAdminStats(); // - Membership check - unmarkMembershipAsExpiringAll(); echo "\n- Membership expiration letters -\n"; $iExpireNotificationDays = (int) getParam("expire_notification_days"); $bExpireNotifyOnce = getParam("expire_notify_once") == 'on'; $iExpireLetters = 0; $aRow = $GLOBALS['MySQL']->getFirstRow("SELECT `ID` FROM `Profiles`"); while (!empty($aRow)) { $aCurrentMem = getMemberMembershipInfo($aRow['ID']); // If expire_notification_days is -1 then notify after expiration if ($aCurrentMem['ID'] == MEMBERSHIP_ID_STANDARD && $iExpireNotificationDays == -1) { // Calculate last UNIX Timestamp $iLastTimestamp = time() - 24 * 3600; $aLastMem = getMemberMembershipInfo($aRow['ID'], $iLastTimestamp); if ($aCurrentMem['ID'] != $aLastMem['ID']) { $bMailResult = mem_expiration_letter($aRow['ID'], $aLastMem['Name'], -1); if ($bMailResult) { $iExpireLetters++; } } } else { if ($aCurrentMem['ID'] != MEMBERSHIP_ID_STANDARD) { // Calculate further UNIX Timestamp for expiration check $iFurtherTimestamp = time() + 24 * 3600; $aFurtherMem = getMemberMembershipInfo($aRow['ID'], $iFurtherTimestamp); if ($aCurrentMem['ID'] != $aFurtherMem['ID'] && $aFurtherMem['ID'] == MEMBERSHIP_ID_STANDARD) { markMembershipAsExpiring($aRow['ID'], $aCurrentMem['ID'], $aCurrentMem['TransactionID']); } // Calculate further UNIX Timestamp for notification letter $iFurtherTimestamp = time() + $iExpireNotificationDays * 24 * 3600; $aFurtherMem = getMemberMembershipInfo($aRow['ID'], $iFurtherTimestamp); if ($aCurrentMem['ID'] != $aFurtherMem['ID'] && $aFurtherMem['ID'] == MEMBERSHIP_ID_STANDARD) { if (!$bExpireNotifyOnce || abs($iFurtherTimestamp - $aCurrentMem['DateExpires']) < 24 * 3600) { $bMailResult = mem_expiration_letter($aRow['ID'], $aCurrentMem['Name'], (int) (($aCurrentMem['DateExpires'] - time()) / (24 * 3600))); if ($bMailResult) { $iExpireLetters++; } } } } } $aRow = $GLOBALS['MySQL']->getNextRow(); } echo "Send membership expire letters: {$iExpireLetters} letters\n"; //======================================================================================================================== // clear tmp folder -------------------------------------------------------------------------- $this->del_old_all_files(); // ---------------------------------------------------------------------------------- $this->clean_database(); $this->finish(); }