예제 #1
0
    public function sendOrderConfirmEmail($cartId)
    {
        $cartManager = new CartManager();
        $bookManager = new BookManager();
        $deliveryPlaceManager = new DeliveryPlaceManager();
        $userManager = new UserManager();
        // Récupérer les infos de la commande et de l'utilisateur avec le cartId
        // Récupérer l'id de l'utilisateur
        $userId = $cartManager->getUserIdByCart($cartId);
        $user = $userManager->find($userId);
        // Récupération des livres
        $booksIds = $cartManager->findAllBooksIdsInCart($cartId);
        $books = $bookManager->showBooks($booksIds);
        // Récupérer l'id du point relai
        $deliveryPlaceId = $cartManager->getDeliveryplaceId($cartId);
        // Récupérer le nom et l'adresse du point relai
        $deliveryplace = $deliveryPlaceManager->showDeliveryplace($deliveryPlaceId);
        $recap = '<p>Bonjour ' . $user['username'] . '</p>';
        $recap .= '<p>La commande suivante vient de vous être expédiée.</p><br><p>Voici le détail de votre commande :</p><br>
						<table>
								<thead>
									<tr>
										<th>
											Titre :
										</th>
									</tr>
								</thead>
								<tbody>';
        foreach ($books as $book) {
            $recap .= '<tr>
							<td>
								' . $book['title'] . '
							</td>
						</tr>';
        }
        $recap .= '		</tbody>
						</table>';
        $recap .= '<p>Votre commande sera livrée au point de retrait suivant : ' . $deliveryplace['name'] . ': ' . $deliveryplace['address'] . '</p>';
        $recap .= '<p>Elle sera disponible dans 48h.</p>';
        $recap .= '<p>Merci d\'utiliser notre service, <br> Bdialement <br> L\'équipe de BDloc</p>';
        $errorEmail = "";
        $mail = new \PHPMailer();
        $mail->isSMTP();
        $mail->setLanguage('fr');
        $mail->CharSet = 'UTF-8';
        $mail->SMTPDebug = 2;
        //0 pour désactiver les infos de débug
        $mail->Debugoutput = 'html';
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPSecure = 'tls';
        $mail->SMTPAuth = true;
        $mail->Username = "******";
        $mail->Password = "******";
        $mail->setFrom('*****@*****.**', 'Service de Messagerie BDloc');
        $mail->addAddress($user['email']);
        $mail->isHTML(true);
        $mail->Subject = 'Votre commande va être livrée';
        $mail->Body = $recap;
        if (!$mail->send()) {
            echo "Mailer Error: " . $mail->ErrorInfo;
        } else {
            echo "Message sent!";
            // Changement du statut du cart sélectionné
            $cartManager->confirmOrder($cartId);
            $this->redirectToRoute('home_admin');
        }
    }