У меня есть этот код, который пишут внутри переменной $products
строка названия продуктов:
$products = '';
foreach($order->pad_products as $product) $products .= " $product->title";
Когда я печатаю $products
внутри тела письма в формате HTML и отправьте письмо с помощью PHP, в этом случае я $msg
Я вижу названия продуктов в одной строке.
$msg = "<html>
<head>
<style type='text/css'></style>
</head>
<body>
<h1>Sent!</h1>
<p>$name thank you</p>
$products
</body>
</html>";
Как я могу составить список этих продуктов?
и я могу удалить один из них?
Чтобы отобразить их в виде списка, вам просто нужно создать список, используя HTML:
<?php
echo "<ul>";
foreach($order->pad_products as $product) {
echo "<li>" . $product->title . "</li>";
}
echo "</ul>";
?>
Альтернатива, применяя к вашему текущему коду
<?php
$products = "";
foreach($order->pad_products as $product) {
$products .= "<li>".$product->title."</li>";
}
$msg = "<html>
<body>
<h1>Sent!</h1>
$products
</body>
</html>";
ProcessWire (который вы пометили это) позволяет вам сделать это с pop()
:
<?php
echo "<ul>";
$products = $order->pad_products;
$products->pop();
foreach($products as $product) {
echo "<li>" . $product->title . "</li>";
}
echo "</ul>";
?>
Другим вариантом является подсчет количества предметов и ограничение на один меньше этого. Вы должны быть в состоянии использовать ->count()
но я не знаю, что такое pad_products, так что если это не сработает, вы можете просто сделать count($order->pad_products)
<?php
echo "<ul>";
$limit = $order->pad_products->count() - 1;
foreach($order->pad_products("limit=$limit") as $product) {
echo "<li>" . $product->title . "</li>";
}
echo "</ul>";
?>