<?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();