Итак, я создал dataLayer, который прекрасно работает при использовании консоли в Chrome:
В Google Tag Manager этот уровень данных не существует. Зачем?
Код, который я использовал ниже:
<script>
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$dataLayer = [];
foreach($items as $item => $values) {
$_product = $values['data']->post;
?>
<?php
$dataLayer[] = [
'itemUnitID' => $_product->ID,
'itemUnitPrice' => get_post_meta($values['product_id'] , '_price', true),
'itemQuantity' => $values[quantity]];
};
?>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push(<?php echo json_encode($dataLayer); ?>);
</script>
Таким образом, в основном код стреляет в dataLayer, но я не могу использовать ни одно из этих значений в Google Tag Manager, так как GTM вообще не распознает dataLayer. Это почему?
Задача ещё не решена.
Других решений пока нет …