function hook_commerce_google_tag_manager_commerce_data_aggregated_alter in Commerce Google Tag Manager 7.2
Allow other modules to alter aggregated event-data just before pushing to the DataLayer.
This hook is called within page_build().
1 invocation of hook_commerce_google_tag_manager_commerce_data_aggregated_alter()
File
- ./
commerce_google_tag_manager.api.php, line 59 - Documentation of Commerce GoogleTagManager hooks.
Code
function hook_commerce_google_tag_manager_commerce_data_aggregated_alter(&$data) {
// Reorder the events by priority: most important events on top.
$prio_events = array(
'"event":"purchase"',
'"event":"addToCart"',
'"event":"removeFromCart"',
'"event":"checkout"',
);
// Build a string representation of the data, to be able to match our events.
$imploded_data = implode('', $data);
// This double loop replaces multiple event-scripts with the script from the
// most important event.
foreach ($prio_events as $event) {
// Find needle in scripts-array.
if (strpos($imploded_data, $event) !== FALSE) {
// Find specific script and select it.
foreach ($data as $script) {
if (strpos($script, $event) !== FALSE) {
// Replace the array with multiple event-scripts by the prio-event.
$data = array(
$script,
);
// Exit inner loop.
continue;
}
}
// Exit outer loop.
continue;
}
}
}