Open Journal Systems  3.3.0
SubscriptionAction.inc.php
1 <?php
2 
23  function sendOnlinePaymentNotificationEmail($request, $subscription, $mailTemplateKey) {
24  $validKeys = array(
25  'SUBSCRIPTION_PURCHASE_INDL',
26  'SUBSCRIPTION_PURCHASE_INSTL',
27  'SUBSCRIPTION_RENEW_INDL',
28  'SUBSCRIPTION_RENEW_INSTL'
29  );
30 
31  if (!in_array($mailTemplateKey, $validKeys)) return false;
32 
33  $journal = $request->getJournal();
34 
35  $subscriptionContactName = $journal->getData('subscriptionName');
36  $subscriptionContactEmail = $journal->getData('subscriptionEmail');
37 
38  if (empty($subscriptionContactEmail)) {
39  $subscriptionContactEmail = $journal->getData('contactEmail');
40  $subscriptionContactName = $journal->getData('contactName');
41  }
42 
43  if (empty($subscriptionContactEmail)) return false;
44 
45  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
46  $user = $userDao->getById($subscription->getUserId());
47 
48  $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */
49  $subscriptionType = $subscriptionTypeDao->getById($subscription->getTypeId(), $journal->getId());
50 
51  $paramArray = array(
52  'subscriptionType' => $subscriptionType->getSummaryString(),
53  'userDetails' => $user->getContactSignature(),
54  'membership' => $subscription->getMembership()
55  );
56 
57  switch($mailTemplateKey) {
58  case 'SUBSCRIPTION_PURCHASE_INDL':
59  case 'SUBSCRIPTION_RENEW_INDL':
60  $paramArray['subscriptionUrl'] = $request->url($journal->getPath(), 'payments', null, null, null, 'individual');
61  break;
62  case 'SUBSCRIPTION_PURCHASE_INSTL':
63  case 'SUBSCRIPTION_RENEW_INSTL':
64  $paramArray['subscriptionUrl'] = $request->url($journal->getPath(), 'payments', null, null, null, 'institutional');
65  $paramArray['institutionName'] = $subscription->getInstitutionName();
66  $paramArray['institutionMailingAddress'] = $subscription->getInstitutionMailingAddress();
67  $paramArray['domain'] = $subscription->getDomain();
68  $paramArray['ipRanges'] = $subscription->getIPRangesString();
69  break;
70  }
71 
72  import('lib.pkp.classes.mail.MailTemplate');
73  $mail = new MailTemplate($mailTemplateKey);
74  $mail->setReplyTo($subscriptionContactEmail, $subscriptionContactName);
75  $mail->addRecipient($subscriptionContactEmail, $subscriptionContactName);
76  $mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
77  $mail->setBody($mail->getBody($journal->getPrimaryLocale()));
78  $mail->assignParams($paramArray);
79  if (!$mail->send()) {
80  import('classes.notification.NotificationManager');
81  $notificationMgr = new NotificationManager();
82  $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
83  }
84  }
85 }
86 
87 
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubscriptionAction
Definition: SubscriptionAction.inc.php:16
MailTemplate
Subclass of Mail for mailing a template email.
Definition: MailTemplate.inc.php:21
SubscriptionAction\sendOnlinePaymentNotificationEmail
sendOnlinePaymentNotificationEmail($request, $subscription, $mailTemplateKey)
Definition: SubscriptionAction.inc.php:23
NotificationManager
Definition: NotificationManager.inc.php:19