diff --git a/public_html/classes/subscription.php b/public_html/classes/subscription.php
index cf29e59..e4578f4 100644
--- a/public_html/classes/subscription.php
+++ b/public_html/classes/subscription.php
@@ -56,4 +56,36 @@ class Subscription extends CPHPDatabaseRecordClass
array(':EmailAddress' => $email, ':SettingsKey' => $key), $expiry, true);
}
}
+
+ public function SendPaymentRequest()
+ {
+ /* Create a payment request */
+ $sPaymentRequest = new PaymentRequest(0);
+ $sPaymentRequest->uCurrency = $this->uCurrency;
+ $sPaymentRequest->uAmount = $this->uAmount;
+ $sPaymentRequest->uCampaignId = $this->uCampaignId;
+ $sPaymentRequest->uSubscriptionId = $this->sId;
+ $sPaymentRequest->uKey = random_string(16);
+ $sPaymentRequest->uPaid = false;
+ $sPaymentRequest->uDate = time();
+ $sPaymentRequest->InsertIntoDatabase();
+
+ /* Log an event */
+ $sLogEntry = new LogEntry(0);
+ $sLogEntry->uType = LogEntry::DONATION_ASKED;
+ $sLogEntry->uIp = $_SERVER['REMOTE_ADDR'];
+ $sLogEntry->uData = json_encode(array("payment_request" => $sPaymentRequest->sId));
+ $sLogEntry->uCampaignId = $sPaymentRequest->sCampaign->sId;
+ $sLogEntry->uDate = time();
+ $sLogEntry->uSessionId = session_id();
+ $sLogEntry->InsertIntoDatabase();
+
+ /* Send an e-mail */
+ $sEmail = $sPaymentRequest->GenerateEmail();
+ send_mail($this->sEmailAddress, "Your monthly donation to {$this->sCampaign->sName}", $sEmail['text'], $sEmail['html']);
+
+ /* Update the subscription to reflect the last sent e-mail */
+ $this->uLastEmailDate = time();
+ $this->InsertIntoDatabase();
+ }
}
diff --git a/public_html/cron.daily.php b/public_html/cron.daily.php
index 1b8d626..85cbfec 100644
--- a/public_html/cron.daily.php
+++ b/public_html/cron.daily.php
@@ -43,34 +43,7 @@ catch (NotFoundException $e)
foreach($sSubscriptions as $sSubscription)
{
- /* Create a payment request */
- $sPaymentRequest = new PaymentRequest(0);
- $sPaymentRequest->uCurrency = $sSubscription->uCurrency;
- $sPaymentRequest->uAmount = $sSubscription->uAmount;
- $sPaymentRequest->uCampaignId = $sSubscription->uCampaignId;
- $sPaymentRequest->uSubscriptionId = $sSubscription->sId;
- $sPaymentRequest->uKey = random_string(16);
- $sPaymentRequest->uPaid = false;
- $sPaymentRequest->uDate = time();
- $sPaymentRequest->InsertIntoDatabase();
-
- /* Log an event */
- $sLogEntry = new LogEntry(0);
- $sLogEntry->uType = LogEntry::DONATION_ASKED;
- $sLogEntry->uIp = $_SERVER['REMOTE_ADDR'];
- $sLogEntry->uData = json_encode(array("payment_request" => $sPaymentRequest->sId));
- $sLogEntry->uCampaignId = $sPaymentRequest->sCampaign->sId;
- $sLogEntry->uDate = time();
- $sLogEntry->uSessionId = session_id();
- $sLogEntry->InsertIntoDatabase();
-
- /* Send an e-mail */
- $sEmail = $sPaymentRequest->GenerateEmail();
- send_mail($sSubscription->sEmailAddress, "Your monthly donation to {$sSubscription->sCampaign->sName}", $sEmail['text'], $sEmail['html']);
-
- /* Update the subscription to reflect the last sent e-mail */
- $sSubscription->uLastEmailDate = time();
- $sSubscription->InsertIntoDatabase();
+ $sSubscription->SendPaymentRequest();
}
/* Now, we'll log a historical statistics snapshot for every campaign. */