本文整理汇总了PHP中RSMembershipHelper::getExtrasNames方法的典型用法代码示例。如果您正苦于以下问题:PHP RSMembershipHelper::getExtrasNames方法的具体用法?PHP RSMembershipHelper::getExtrasNames怎么用?PHP RSMembershipHelper::getExtrasNames使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RSMembershipHelper
的用法示例。
在下文中一共展示了RSMembershipHelper::getExtrasNames方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendNotifications
public static function sendNotifications($memberships, $cid = null, $resend = false)
{
// Get custom fields
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$date = JFactory::getDate();
$fields = RSMembership::getCustomFields();
$config = RSMembershipConfig::getInstance();
$update_ids = array();
foreach ($memberships as $membership) {
$date = JFactory::getDate();
$interval = $membership->expire_notify_interval;
$date->modify("+{$interval} days");
// Select all the subscriptions that match (about to expire)
$query->clear();
$query->select($db->qn('u.id', 'user_id'))->select($db->qn('u.email', 'user_email'))->select($db->qn('u.name', 'user_name'))->select($db->qn('u.username', 'user_username'))->select($db->qn('mu.id', 'muid'))->select($db->qn('mu.extras'))->select($db->qn('mu.membership_end'))->select($db->qn('mu.from_transaction_id'))->from($db->qn('#__rsmembership_membership_subscribers', 'mu'))->join('left', $db->qn('#__users', 'u') . ' ON ' . $db->qn('mu.user_id') . ' = ' . $db->qn('u.id'))->where($db->qn('mu.status') . ' = ' . $db->q(MEMBERSHIP_STATUS_ACTIVE))->where($db->qn('mu.published') . ' = ' . $db->q(1));
if (!$resend) {
$query->where($db->qn('mu.notified') . ' = ' . $db->q($db->getNullDate()));
}
$query->where($db->qn('mu.membership_end') . ' != ' . $db->q($db->getNulldate()))->where($db->qn('mu.membership_end') . ' < ' . $db->q($date->toSql()))->where($db->qn('mu.membership_id') . ' = ' . $db->q($membership->id));
if ($cid != null && is_array($cid) && count($cid) > 0) {
$ids = implode($db->q(','), $cid);
$query->where($db->qn('mu.id') . ' IN (' . $ids . ')');
}
$db->setQuery($query, 0, $config->get('expire_emails'));
$results = $db->loadObjectList();
// No results, next membership
if (empty($results)) {
continue;
}
$now = JFactory::getDate()->toUnix();
$sentToUser = false;
$sentToAdmin = false;
foreach ($results as $result) {
$extras = '';
// Performance check
if ($result->extras && (strpos($membership->user_email_expire_text . $membership->user_email_expire_subject, '{extras}') !== false || strpos($membership->admin_email_expire_text . $membership->admin_email_expire_subject, '{extras}') !== false)) {
$extras = RSMembershipHelper::getExtrasNames($result->extras);
}
$expireDate = JFactory::getDate($result->membership_end);
$expireIn = ceil(($expireDate->toUnix() - $now) / 86400);
$placeholders = array('{membership}' => $membership->name, '{membership_end}' => RSMembershipHelper::showDate($result->membership_end), '{extras}' => $extras, '{email}' => $result->user_email, '{name}' => $result->user_name, '{username}' => $result->user_username, '{interval}' => $expireIn);
$replace = array_keys($placeholders);
$with = array_values($placeholders);
$query->clear();
$query->select('*')->from($db->qn('#__rsmembership_subscribers'))->where($db->qn('user_id') . ' = ' . $db->q($result->user_id));
$db->setQuery($query);
$user_data_tmp = $db->loadObject();
$user_data = array();
foreach ($fields as $field) {
$field_id = 'f' . $field->id;
$user_data[$field->name] = isset($user_data_tmp->{$field_id}) ? $user_data_tmp->{$field_id} : '';
}
unset($user_data_tmp);
foreach ($fields as $field) {
$name = $field->name;
$replace[] = '{' . $name . '}';
if (isset($user_data[$name])) {
$with[] = is_array($user_data[$name]) ? implode("\n", $user_data[$name]) : $user_data[$name];
} else {
$with[] = '';
}
}
$membership_fields = RSMembership::getCustomMembershipFields($membership->id);
$transaction_user_data = RSMembership::getUserData($result->from_transaction_id);
foreach ($membership_fields as $field) {
$name = $field->name;
$replace[] = '{' . $name . '}';
if (isset($transaction_user_data->membership_fields[$name])) {
$with[] = is_array($transaction_user_data->membership_fields[$name]) ? implode("\n", $transaction_user_data->membership_fields[$name]) : $transaction_user_data->membership_fields[$name];
} else {
$with[] = '';
}
}
$jconfig = JFactory::getConfig();
if ($membership->user_email_expire_subject) {
$message = str_replace($replace, $with, $membership->user_email_expire_text);
// from address
$from = $membership->user_email_use_global ? $jconfig->get('mailfrom') : $membership->user_email_from_addr;
// from name
$fromName = $membership->user_email_use_global ? $jconfig->get('fromname') : $membership->user_email_from;
// recipient
$recipient = $result->user_email;
// user email
// subject
$subject = str_replace($replace, $with, $membership->user_email_expire_subject);
// body
$body = $message;
// mode
$mode = $membership->user_email_mode;
// cc
$cc = null;
// bcc
$bcc = null;
// attachments
$query->clear();
$query->select($db->qn('path'))->from($db->qn('#__rsmembership_membership_attachments'))->where($db->qn('membership_id') . ' = ' . $db->q($membership->id))->where($db->qn('email_type') . ' = ' . $db->q('user_email_expire'))->where($db->qn('published') . '=' . $db->q('1'))->order($db->qn('ordering') . ' ASC');
$db->setQuery($query);
$attachment = $db->loadColumn();
// reply to
//.........这里部分代码省略.........