Exemple #1
0
        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 - Логин пользователя которому необходимо автопродление
Exemple #2
0
 /**
  * Уведомления за 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;
 }