public function evaluate($params = []) { $params['scripting'] = Util::get_scripting()[intval(@$params['scriptingi'])]; $model = Record::allow($params, ['name', 'email', 'phone', 'company', 'url', 'scripting']); $where = [implode(' = ? AND ', array_keys($model)) . ' = ?'] + $model; $evaluator = Evaluator::read(['*'], TRUE, $where); $today = gmdate('Y-m-d'); $update = ['agreement_date' => $today, 'email_date' => $today, 'ip' => $_SERVER['REMOTE_ADDR'], 'opt_out' => 0]; if (isset($evaluator['id'])) { Evaluator::update($update, $evaluator['id']); $evaluator += $update; } else { $model['`key`'] = Evaluator::get_unique_key($model); $model += $update; $evaluator = Evaluator::create($model); $evaluator['key'] = $evaluator['`key`']; unset($evaluator['`key`']); } $body = Template::render_doc_by_name('evaluate-email', $evaluator); $args = ['toname' => $evaluator['name'], 'toemail' => $evaluator['email'], 'fromname' => 'WinWrap Support', 'fromemail' => '*****@*****.**', 'subject' => 'WinWrap Basic Evaluation', 'body' => $body]; if (GoogleMail::send($args) === true) { unset($evaluator['id']); Render::json($evaluator); } else { header('Status: 500'); } }