为了账号安全,请及时绑定邮箱和手机立即绑定

在 phpmailer 中列出购物车

在 phpmailer 中列出购物车

PHP
qq_笑_17 2023-07-30 13:46:06
我尝试在“下订单”后使用 phpmailer 发送电子邮件。问题是我无法将购物车列为电子邮件(产品、数量、每种产品的价格和总价)。echo var_dump($_SESSION['cart']); echo var_dump($_SESSION['qty_array']);这表明一切似乎都有效。购物车.php:<tr>    <?php        $total = 0;        if(!empty($_SESSION['cart'])){            include 'config.php';            $index = 0;        if(!isset($_SESSION['qty_array'])){            $_SESSION['qty_array'] = array_fill(0, count($_SESSION['cart']), 1);        }        $sql = "SELECT * FROM products WHERE id IN (".implode(',',$_SESSION['cart']).")";        $query = $conn->query($sql);        while($row = $query->fetch_assoc()){    ?></tr><tr>    <td>        <img src="<?= $row['photo'] ?>" width="150px"><br />        <?= $row['name'] ?>    </td>        <input type="hidden" name="indexes[]" value="<?php echo $index; ?>">    <td>        <?php echo $_SESSION['qty_array'][$index]; ?>    </td>    <td>        <b><i class="fas fa-dollar-sign"></i> <?php echo number_format($_SESSION['qty_array'][$index]*$row['price'], 2); ?></b>    </td>        <?php $total += $_SESSION['qty_array'][$index]*$row['price']; ?></tr><?php    $index ++;    }    }?>phpmailer.php:    echo var_dump($_SESSION['cart']);    echo var_dump($_SESSION['qty_array']);    foreach($_SESSION['cart'] as $key => $product) {        $name = $product['name'];        $price = $product['price'];        $qty = $product['qty'];        $tprice = $product['totalPrice'];    }    $mail->Body  = nl2br("$name\r\n$\r\n$qty\r\n$tprice"); 这根本不起作用。我尝试了一些方法,大部分有效的只是列出购物车列表中的最后一个产品。但只有身份证。
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

我找到了一个解决方案:


phpmailer.php


    ...


    $mail->Body  = nl2br("Hi {$_POST['name']} \r\n");


    /// List Cart Item(s) Start

    $total = 0;

    if(!empty($_SESSION['cart'])){

        include 'config.php';

        $index = 0;

        if(!isset($_SESSION['cart'])){

            $_SESSION['cart'] = array_fill(0, count($_SESSION['cart']), 1);

        }

        $sql = "SELECT * FROM products WHERE id IN (".implode(',',$_SESSION['cart']).")";

        $query = $conn->query($sql);

        while($row = $query->fetch_assoc()){

            $index;

            $service = $row['name'];

            $qty = $_SESSION['cart'][$index];

            $qtyPrice = $row['price'];

            $qtyTotalprice = number_format($_SESSION['cart'][$index]*$row['price'], 2);

            $total += $_SESSION['cart'][$index]*$row['price'];

        

        $mail->Body .= nl2br("$service: ($qty) x ($$qtyPrice) = $$qtyTotalprice \r\n");

        

        $index ++;

        }

    }

    $mail->Body .= nl2br(" \r\nTOTAL: $ <u>$total</u>");

    /// Cart Item(s) End


    $mail->Body .= nl2br("Kind regards \r\n");


    ...


查看完整回答
反对 回复 2023-07-30
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信