слои данных — переменные PHP в dataLayer

Я новичок в PHP и dataLayer, но у меня есть следующий код, который включает в себя dataLayer с PHP-кодом. Я хочу использовать переменные уровня данных, чтобы сопоставить их с менеджером тегов Google, и хотел бы использовать переменные PHP, доступные в приведенном ниже коде. То, что я хотел бы заполнить из переменных PHP, как показано ниже.

Имя, цена, категория и количество для заполнения из переменных PHP в структуру уровня данных.

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

Кроме того, необходимо заполнить транзакцию, которая представляет собой сумму всех цен отдельных товаров.

var cartItemMap = new Object();
var cartItem1 = null;
var cartItem2 = null;
var cartItem3 = null;
var cartItem4 = null;
var cartItem5 = null;
var cartItem6 = null;
var cartItem7 = null;
var cartItem8 = null;
var cartItem9 = null;
<?php
$size = 0;
foreach($_SESSION['product'] as $key => $pro){
$size = $size + 1;
}
$i = 1;
foreach($_SESSION['product'] as $key => $pro){

if($size > 9){
$size = $size -1;
}
else{
?>

dataLayer = [{
'transactionId': Math.floor((Math.random() * 100) + 1),
'transactionTotal': 11.99,
'transactionTax': 1.29,
'transactionShipping': 5,
'transactionProducts': [{
'sku': 121212,
'name': "Test",
'category': "Testing Category",
'price': 33,
'quantity': 1
},{
'sku': 'AA1243544',
'name': 'Socks',
'category': 'Apparel',
'price': 9.99,
'quantity': 2
}]
}];

if("<?php echo $pro['product_name'] ?>" != ''){
cartItem<?php echo $i ?> = new Object();

cartItem<?php echo $i ?>.productName = "<?php echo $pro['product_name'] ?>";
cartItem<?php echo $i ?>.productPrice = "<?php echo $pro['product_price'] ?>";
cartItem<?php echo $i ?>.productQuantity = <?php echo $pro['product_quantity'] ?>;
cartItem<?php echo $i ?>.productCategory = "<?php echo $pro['product_category'] ?>";
cartItemMap[<?php echo $key ?>] = cartItem<?php echo $i ?>;
}
<?php
$i = $i + 1;
}
}
?>

Помощь приветствуется.

0

Решение

Вы можете попробовать что-то вроде этого:

<script type="text/javascript">
var cartItems = [
<?php foreach($_SESSION['product'] as $key => $pro): ?>
{
productName: "<?= $pro['product_name']; ?>",
productPrice: "<?= $pro['product_price']; ?>",
productQuantity: "<?= $pro['product_quantity']; ?>",
productCategory: "<?= $pro['product_category']; ?>"},
<?php endforeach; ?>
];
</script>

Это создает массив (cartItems) объектов (cartItem)

1

Другие решения

Других решений пока нет …