Отправьте счет по электронной почте при регистрации и подтвердите адрес электронной почты при регистрации - PullRequest
0 голосов
/ 02 мая 2020

Отправьте счет по электронной почте при регистрации и подтвердите адрес электронной почты при регистрации

Во время оформления заказа отправьте счет по электронной почте пользователю.

Для этого электронная почта пользователя должна быть подтвержденным, когда пользователь зарегистрируется.

Я хочу добавить адрес электронной почты при оформлении заказа, чтобы он отправлял счет-фактуру после успешного завершения проверки.

index. js (оформление заказа)

app.post('/b/checkout', authAndRedirectSignIn, async (req, res) => {
    if (!req.session.cart) {
        res.setHeader('Cache-Control', 'private');
        return res.send('Shopping Cart is Empty!')
    }

    // data format to store in firebase 
    // collection: orders
    // {uid, timestamp, cart}
    // cart = [{product, qty} ....] // contents in shoppingcart

    const data = {
        uid: req.decodedIdToken.uid,
        //timestamp: firebase.firestore.Timestamp.fromDate(new Date()),
        cart: req.session.cart
    }

    try {
        await adminUtil.checkOut(data)
        req.session.cart = null;
        res.setHeader('Cache-Control', 'private');
        return res.render('shoppingcart.ejs',
            {message: 'Checked Out Successfully!', cart: new ShoppingCart(), user: req.decodedIdToken, cartCount: 0})
    } catch (e) {
        const cart = ShoppingCart.deserialize(req.session.cart)
        res.setHeader('Cache-Control', 'private');
        return res.render('shoppingcart.ejs',
        {message: 'Checked Out Failed. Try Again Later!', cart, user: req.decodedIdToken, cartCount: cart.contents.length}
        )
    }
})

index. js (регистрация)

app.get('/b/signup', (req, res) => {
    res.render('signup.ejs', {page: 'signup', user: null, error: false, cartCount: 0})
})

регистрация.e js

<form class="form-signin" action="/admin/signup" method="post">
            <% if (error) { %>
                <p style="color: red;"><%= error %></p>
            <% } %>
            <h3>Create an account</h3>
            <input type="email" class="form-control" name="email" placeholder ="Email address">
            <input type="password" class="form-control" name="password" placeholder = "Password">
            <input type="text" class="form-control" name="displayName" placeholder ="Display Name">
            <input type="tel" class="form-control" name="phoneNumber" placeholder ="+1-222-333-4444">
            <input type="text" class="form-control" name="photoURL" placeholder ="Profile Image URL">
            <button type="submit" class="btn btn-primary">Create</button>
        </form>

shoppingcart.e js оформить заказ

<table class="table table-striped">
            <thead>
              <tr>
                <th scope="col">Image</th>
                <th scope="col">Name</th>
                <th scope="col">Price</th>
                <th scope="col">Qty</th>
                <th scope="col">Sub-Total</th>
                <th scope="col">Summary</th>
              </tr>
            </thead>
            <tbody>
                <% for (let i = 0; i < cart.contents.length; i++) { %>
              <tr>
                <th scope="row"><img width=50 height=50 src="<%= cart.contents[i].product.image_url%>"></th>
                <td><%= cart.contents[i].product.name %></td>
                <td><%= cart.contents[i].product.price.toFixed(2) %></td>
                <td><%= cart.contents[i].qty %></td>
                <td><%= (cart.contents[i].qty * cart.contents[i].product.price).toFixed(2) %></td>
                <td><%= cart.contents[i].product.summary %></td>
              </tr>
              <% } %>
            </tbody>
          </table>
          <h2>TOTAL: <%= cart.getTotal().toFixed(2) %></h2>

          <% if (cart.contents.length > 0) { %>
            <div>
                <form action="/b/checkout" method="post">
                    <button type="submit" class="btn btn-primary">Check Out</button>
                </form>
            </div>
          <% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...