2017-01-09 4 views
0

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

Название, цена, категория и количество, которые нужно заполнить из переменных 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

Если вы оказываетесь nubering имена переменных, то вам, возможно, следует с учетом использования массива или объект коллекции, а не –

+0

Я полностью не знаю, как это сделать. Пожалуйста, помогите/объясните. – kishoremcp

+0

Ваш код и проблема трудно понять. Где ваш «уровень данных» в этом и что вы пытаетесь сделать? – nerdlyist

ответ

1

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

<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)

+0

Hi Sepultura, Код работает Спасибо. Теперь я хочу создать случайное число для каждого из продуктов в массиве, а также хочу, чтобы сумма транзакций находилась в другой переменной поверх массива (я имею в виду не в массиве), чтобы суммировать общее значение (product1 Price + product1 Price ...) – kishoremcp

+0

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

+0

Нет проблем. Спасибо за вашу помощь. Попробуй сам. – kishoremcp

Смежные вопросы