echo "<strong style='color:red'>День может принимать значение 1 или 3</strong>"; return; } if ($_GET['days'] == 1 && $_GET['auto'] == 1) { echo "<strong style='color:red'>Не может быть одновременно days = 1 и auto = 1</strong>"; return; } $mail = new smail(); if ($_GET['service'] == 'pro') { $sql = "SELECT u.*, a.id as acc_id FROM users u INNER JOIN account a ON a.uid = u.uid WHERE u.login = ?"; $user = $DB->row($sql, $_GET['user']); if ($_GET['auto'] == 1) { $role = is_emp($user['role']) ? "employer" : "freelancer"; $mail->remindAutoprolongPRO(array($user), $role, $_GET['days']); } else { $mail->remindTimeleftPRO(array($user), $_GET['days']); } } else { if ($_GET['auto'] == 1) { $mail->remindAutoprolongFirstpage($_GET['days'], $_GET['user']); } else { $mail->reminderFPNotAutopayed($_GET['days'], $_GET['user']); } } echo "<strong style='color:green'>Уведомления посланы</strong>"; } ?> <p> Чтобы имитировать окончание Платного размещения используйте такую ссылку beta.free-lance.ru/test/test-payed.php?fflogin=login&attempt=1<br/> <pre> fflogin - Логин пользователя которому необходимо автопродление
/** * Уведомления за 3 дня до кончания ПРО у тех у кого не включено автопродление * * @return bool */ public function getPROEnding($auto = true, $days = 3) { global $DB; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php"; foreach (array('freelancer', 'employer') as $tbl) { $sql = "\n SELECT\n pro_users.uid, pro_users.date_end, u.email, u.login, a.id as acc_id, substr(u.subscr::text,16,1) = '1' as bill_subscribe,\n u.uname, u.usurname, u.subscr, date_part('days', date_end - NOW() ) as days_left\n FROM (\n SELECT uid, MAX(from_date+to_date+COALESCE(freeze_to, '0')::interval) AS date_end\n FROM orders\n INNER JOIN {$tbl} u ON from_id=uid\n WHERE\n u.is_banned = '0'\n AND u.is_pro='true'\n AND u.is_pro_auto_prolong=?\n -- AND orders.payed='true' AND orders.active='true' -- deprecated #0021704\n AND from_date+to_date+COALESCE(freeze_to, '0')::interval > NOW()\n GROUP BY uid\n ) as pro_users\n INNER JOIN {$tbl} u ON u.uid = pro_users.uid\n INNER JOIN account a ON a.uid = u.uid\n WHERE (pro_users.date_end>(NOW()+'{$days} day') AND pro_users.date_end<=(NOW()+'{$days} day 1 hour'));"; $result[$tbl] = $DB->rows($sql, $auto); if (!$result[$tbl]) { unset($result[$tbl]); } // Если пустой результат } if ($result) { foreach ($result as $role => $users) { $mail = new smail(); $mail->remindTimeleftPRO($users, $days); /* @todo: автопродления пока нет, все уведомляем обычно if(!$auto) { $mail->remindTimeleftPRO($users, $days); } else { $mail->remindAutoprolongPRO($users, $role, $days); } */ // $mail = new smail2(); // $mail->sendPROEnding(( $role == 'freelancer' ? 'FRL' : 'EMP' ), $users); } return true; } return false; }