From e148450a62584816e2773015b2bc00bc44ffd778 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Fri, 1 Mar 2013 12:52:04 +0100 Subject: [PATCH] Move PaymentRequest sending to Subscription class --- public_html/classes/subscription.php | 32 ++++++++++++++++++++++++++++ public_html/cron.daily.php | 29 +------------------------ 2 files changed, 33 insertions(+), 28 deletions(-) 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. */