public static function sendAdminUserContractExpiredLetter($userSID, $contractInfo, $productInfo) { $emailTplSID = SJB_Settings::getSettingByName('notify_on_user_contract_expiration'); if ($emailTplSID) { $user = SJB_UserManager::getObjectBySID($userSID); $user = SJB_UserManager::createTemplateStructureForUser($user); $productInfo = array_merge($productInfo, SJB_ProductsManager::createTemplateStructureForProductForEmailTpl($productInfo)); $params = array('user' => $user, 'contract' => $contractInfo, 'product' => $productInfo); $admin_email = SJB_Settings::getSettingByName('notification_email'); $email = SJB_EmailTemplateEditor::getEmail($admin_email, $emailTplSID, $params); if ($email) { // notify subadmins $subAdminsToNotify = self::isSubAdminNotifiedOnUserContractExpiration($user['group']['id']); if (is_array($subAdminsToNotify)) { foreach ($subAdminsToNotify as $subAdminEmail) { $email->addCC($subAdminEmail); } } return $email->send(); } } return null; }
public static function sendRemindSubscriptionExpirationLetter($userSID, $contractInfo, $days) { $user = SJB_UserManager::getObjectBySID($userSID); $userGroupSID = $user->getUserGroupSID(); $emailTplSID = SJB_UserGroupManager::getEmailTemplateSIDByUserGroupAndField($userGroupSID, 'notify_subscription_expire_date'); $product = array(); $productInfo = SJB_ProductsManager::getProductInfoBySID(SJB_Array::get($contractInfo, 'product_sid')); if ($productInfo) { $productExtraInfo = SJB_ProductsManager::getProductExtraInfoBySID($productInfo['sid']); $productInfo = array_merge($productInfo, $productExtraInfo); $fields = SJB_ProductsManager::createTemplateStructureForProductForEmailTpl($productInfo); $product = array_merge($fields, $productExtraInfo); } $user_info = SJB_UserManager::createTemplateStructureForUser($user); $data = array('type' => 'contract', 'user' => $user_info, 'days' => $days, 'contractInfo' => $contractInfo, 'product' => $product); $email = SJB_EmailTemplateEditor::getEmail($user_info['email'], $emailTplSID, $data); return $email->send('Remind Subscription Expiration'); }
/** * prepare template variables for Product emails */ private function prepareTplVarsForProduct() { $productTypes = array('post_listings', 'access_listings', 'mixed_product', 'featured_user', 'banners', 'custom_product'); foreach ($productTypes as $key => &$productType) { $products = SJB_ProductsManager::getProductsByProductType($productType); if (!empty($products)) { $productInfo = array_pop($products); $productExtraInfo = SJB_ProductsManager::getProductExtraInfoBySID($productInfo['sid']); $productInfo = array_merge($productInfo, $productExtraInfo); $productType = array('id' => $productType, 'caption' => SJB_ProductsManager::getProductTypeByID($productType)); $fields = SJB_ProductsManager::createTemplateStructureForProductForEmailTpl($productInfo); $fields = array_merge($fields, $productExtraInfo); unset($fields['METADATA']); $productType['fields'] = $this->echoVars($fields); } else { unset($productTypes[$key]); } } $this->tp->assign('productTypes', $productTypes); }