Example #1
0
<?php

$form = new Odf\Form('clients/new');
$form->validate();
if ($errors = $form->getErrors()) {
    return $Javascript->setErrors($errors)->output();
}
$form_input = $form->getInput();
// Check if client email hasn't been invited yet.
$client_requests_table = new Tables\ClientRequests();
$existing_request = $client_requests_table->by('email', $form_input['email'])->getFirst();
if ($existing_request) {
    if ($existing_request->coach_id == getUser()->id) {
        return $Javascript->setError(__('You have already invited this person before, on') . ' ' . strftime('%d %B %Y.', strtotime($existing_request->created)))->output();
    }
}
// Is this coach inviting an existing or a new user?
$users_table = new Tables\Users();
$existing_user = $users_table->by('email', $form_input['email'])->getFirst();
// Send client invitation email.
$mail_contents = $Template->get('emails/invite_new_client', $form_input);
$mail_headers = ['From: ' . get('main_email'), 'Reply-to: noreply@fit.com'];
// if (!mail($form_input['email'], getUser()->first_name . ' ' . __('would like to coach you on Fit'), $mail_contents, implode("\n", $mail_headers)))
// 	return $Template->output('validator/errors', __('Email could not be sent.'));
// Save client invitation.
$data = ['coach_id' => getUser()->id, 'email' => $form_input['email'], 'hash' => $Login->randomHash(24), 'message' => $form_input['message']];
if ($existing_user) {
    $data['client_id'] = $existing_user->id;
}
$client_requests_table->create($data);
$Javascript->setSuccessMessage(__('Invitation successfully sent.'))->output();