| Server IP : 10.10.92.66 / Your IP : 104.23.243.85 Web Server : Apache/2.4.52 (Ubuntu) System : Linux jurnalpolinema 5.15.0-177-generic #187-Ubuntu SMP Sat Apr 11 22:54:33 UTC 2026 x86_64 User : jurnal ( 1001) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/jurnal/public_html/classes/subscription/ |
Upload File : |
<?php
/**
* @file classes/subscription/SubscriptionAction.inc.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class SubscriptionAction
* @ingroup subscriptions
*
* Common actions for subscription management functions.
*/
class SubscriptionAction {
/**
* Send notification email to Subscription Manager when online payment is completed.
* @param $request PKPRequest
* @param $subscription Subscription
* @param $mailTemplateKey string
*/
function sendOnlinePaymentNotificationEmail($request, $subscription, $mailTemplateKey) {
$validKeys = array(
'SUBSCRIPTION_PURCHASE_INDL',
'SUBSCRIPTION_PURCHASE_INSTL',
'SUBSCRIPTION_RENEW_INDL',
'SUBSCRIPTION_RENEW_INSTL'
);
if (!in_array($mailTemplateKey, $validKeys)) return false;
$journal = $request->getJournal();
$subscriptionContactName = $journal->getData('subscriptionName');
$subscriptionContactEmail = $journal->getData('subscriptionEmail');
if (empty($subscriptionContactEmail)) {
$subscriptionContactEmail = $journal->getData('contactEmail');
$subscriptionContactName = $journal->getData('contactName');
}
if (empty($subscriptionContactEmail)) return false;
$userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
$user = $userDao->getById($subscription->getUserId());
$subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */
$subscriptionType = $subscriptionTypeDao->getById($subscription->getTypeId(), $journal->getId());
$paramArray = [
'subscriptionType' => htmlspecialchars($subscriptionType->getSummaryString()),
'userDetails' => $user->getContactSignature(),
'membership' => htmlspecialchars($subscription->getMembership())
];
switch($mailTemplateKey) {
case 'SUBSCRIPTION_PURCHASE_INDL':
case 'SUBSCRIPTION_RENEW_INDL':
$paramArray['subscriptionUrl'] = $request->url($journal->getPath(), 'payments', null, null, null, 'individual');
break;
case 'SUBSCRIPTION_PURCHASE_INSTL':
case 'SUBSCRIPTION_RENEW_INSTL':
$paramArray['subscriptionUrl'] = $request->url($journal->getPath(), 'payments', null, null, null, 'institutional');
$paramArray['institutionName'] = htmlspecialchars($subscription->getInstitutionName());
$paramArray['institutionMailingAddress'] = nl2br(htmlspecialchars($subscription->getInstitutionMailingAddress()));
$paramArray['domain'] = htmlspecialchars($subscription->getDomain());
$paramArray['ipRanges'] = $subscription->getIPRangesString();
break;
}
import('lib.pkp.classes.mail.MailTemplate');
$mail = new MailTemplate($mailTemplateKey);
$mail->setReplyTo($subscriptionContactEmail, $subscriptionContactName);
$mail->addRecipient($subscriptionContactEmail, $subscriptionContactName);
$mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
$mail->setBody($mail->getBody($journal->getPrimaryLocale()));
$mail->assignParams($paramArray);
if (!$mail->send()) {
import('classes.notification.NotificationManager');
$notificationMgr = new NotificationManager();
$notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
}
}
}