我有一个购物车,一旦placeorder.php被点击,我就设置了一个webhook来发布到discord。
购物车使用会话数组存储购物车信息。
当按下"添加到卡"按钮时,会话数组在product.php页面上设置如下
$_SESSION['cart'] = array($product_id => $quantity);
产品ID是从mysql数据库中提取的。
- 在购物车中添加了2个项目后,数组如下所示:**
["cart"]=>
array(2) {
[1]=> int(5)
[4]=> int(3)
}
- 如果我重复这个数组,它会变成**
foreach ($products as $product){
echo $product[name];
echo $products_in_cart[$product['id']];
}
Output: camera5laptop3
$products_in_cart[$product['id'] is simply grabbing the quantity ordered.
- JSON结构**
我正在尝试使购物车中的每个产品名称都出现在"订购的产品"字段下的新行(\n)上。数量也是如此。
这将是通过foreach,但由于json结构在json_encode()中,我很挣扎。
以下设置目前仅显示了阵列中的最后一个*$产品['name']* 和 $产品_in_cart [$产品['id ']
$msg = json_encode([
// Message
"content" => "",
// Username
//"username" => "",
// Avatar URL.
// Uncomment to use custom avatar instead of bot's pic
//"avatar_url" => "",
// text-to-speech
"tts" => false,
// file_upload
// "file" => "",
// Embeds Array
"embeds" => [
[
// Title
"title" => "New Order",
// Embed Type, do not change.
"type" => "rich",
// Description
"description" => "New order, go sort it",
// Link in title
//"url" => "",
// Timestamp, only ISO8601
"timestamp" => $timestamp,
// Left border color, in HEX
"color" => hexdec( "3366ff" ),
// Footer text
"footer" => [
"text" => "Sent from thestash.store",
"icon_url" => ""
],
// Embed image
"image" => [
"url" => ""
],
// thumbnail
//"thumbnail" => [
// "url" => ""
//],
// Author name & url
"author" => [
"name" => "TEST3",
"url" => ""
],
// Custom fields
"fields" => [
// Field 1
[
"name" => "Ordered Products",
"value" => $product['name'],
"inline" => true
],
// Field 2
// Field 1
[
"name" => "Quantity",
"value" => $products_in_cart[$product['id']],
"inline" => true
],
[
"name" => "Order Total $",
"value" => $subtotal,
],
[
"name" => "Customer Alias",
"value" => $_SESSION['alias'],
"inline" => true
],
[
"name" => "Customer Number",
"value" => $_SESSION['number'],
"inline" => true
],
[
"name" => "Affiliation",
"value" => $_SESSION['affiliation'],
"inline" => true
],
// etc
]
]
]
], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE );
不协调时的电流输出:
正在尝试输出为(在JSON中设置manuall)
- 打印_r($消息);**
{
"content": "",
"tts": false,
"embeds": [
{
"title": "New Order",
"type": "rich",
"description": "New order, go sort it",
"timestamp": "2023-01-13T11:57:22+00:00",
"color": 3368703,
"footer": {
"text": "Sent from thestash.store",
"icon_url": ""
},
"image": {
"url": ""
},
"author": {
"name": "TEST3",
"url": "https://thestash.store"
},
"fields": [
{
"name": "Ordered Products",
"value": "laptop",
"inline": true
},
{
"name": "Quantity",
"value": 3,
"inline": true
},
{
"name": "Order Total $",
"value": 96000
},
{
"name": "Customer Alias",
"value": "quigg",
"inline": true
},
{
"name": "Customer Number",
"value": "1239871237378127",
"inline": true
},
{
"name": "Affiliation",
"value": "yes",
"inline": true
}
]
}
]
}
正在尝试使用如下JSON格式。其中,每个$product [name]和$products_in_cart [$product ['id ']]都在一个新行上。当前显示最后一个$product [name]和$products_in_cart [$product ['id']]
{
"content": "",
"tts": false,
"embeds": [
{
"title": "New Order",
"type": "rich",
"description": "New order, go sort it",
"timestamp": "2023-01-13T11:57:22+00:00",
"color": 3368703,
"footer": {
"text": "Sent from thestash.store",
"icon_url": ""
},
"image": {
"url": ""
},
"author": {
"name": "TEST3",
"url": "https://thestash.store"
},
"fields": [
{
"name": "Ordered Products",
"value": "camera\nlaptop",
"inline": true
},
{
"name": "Quantity",
"value": "5\n3",
"inline": true
},
{
"name": "Order Total $",
"value": 96000
},
{
"name": "Customer Alias",
"value": "quigg",
"inline": true
},
{
"name": "Customer Number",
"value": "1239871237378127",
"inline": true
},
{
"name": "Affiliation",
"value": "yes",
"inline": true
}
]
}
]
}
1条答案
按热度按时间ztyzrc3y1#
所以这只是一个在两个字符串中添加额外内容的例子,用换行符分隔,所以只要循环遍历products数组来创建两个字符串,一个是名称,一个是数量,然后把它们放入变量中,然后你就可以在Fields数组中正确的位置使用这些变量了。
以下是总体思路:
然后在构建数组的位中: