public function sendNotification($pks) { require_once JPATH_ADMINISTRATOR . '/components/com_rsmembership/helpers/rsmembership.php'; // Get custom fields $db = JFactory::getDBO(); $table = $this->getTable(); $query = $db->getQuery(true); $pks = (array) $pks; foreach ($pks as $i => $pk) { if ($table->load($pk)) { // Load specific membership $query->select('*')->from($db->qn('#__rsmembership_memberships'))->where('(' . $db->qn('user_email_from_addr') . ' != ' . $db->q('') . ' OR ' . $db->qn('user_email_use_global') . ' = ' . $db->q(1) . ')')->where($db->qn('published') . ' = ' . $db->q(1))->where($db->qn('id') . ' = ' . $db->q($table->membership_id)); $db->setQuery($query); $memberships = $db->loadObjectList(); $sent = RSMembership::sendNotifications($memberships, array($pk), true); $query->clear(); return $sent; } } $this->cleanCache(); return true; }
protected function sendExpirationEmails() { $db = JFactory::getDbo(); $query = $db->getQuery(true); $date = JFactory::getDate(); $config = RSMembershipConfig::getInstance(); // Check the last time this has been run $now = $date->toUnix(); if ($now < $config->get('expire_last_run') + $config->get('expire_check_in') * 60) { return; } // update config value for last time the expiration emails were sent $config->set('expire_last_run', $now); // Get expiration intervals and memberships // Performance check - if no emails can be sent, no need to grab the membership $query->select('*')->from($db->qn('#__rsmembership_memberships'))->where('(' . $db->qn('user_email_from_addr') . ' != ' . $db->q('') . ' OR ' . $db->qn('user_email_use_global') . ' = ' . $db->q(1) . ')')->where($db->qn('published') . ' = ' . $db->q(1)); $db->setQuery($query); $memberships = $db->loadObjectList(); if ($memberships) { RSMembership::sendNotifications($memberships, null, false); } }