commerce_signifyd-1.0.x-dev/modules/device_fingerprint/device_fingerprint.module
modules/device_fingerprint/device_fingerprint.module
<?php
/**
* @file
* Contains hook implementations for device_fingerprint.
*/
use Drupal\commerce_signifyd\Signifyd\Cases;
/**
* Implements hook_page_attachments().
*/
function device_fingerprint_page_attachments(array &$attachments) {
$carts = \Drupal::service('commerce_cart.cart_provider')->getCarts();
$carts = array_filter($carts, function ($cart) {
/** @var \Drupal\commerce_order\Entity\OrderInterface $cart */
return $cart->hasItems();
});
if (count($carts) > 0) {
$cart = end($carts);
$order_session_id = Cases::getOrderSessionId($cart);
$signifyd_javascript = 'https://cdn-scripts.signifyd.com/api/script-tag.js';
$attachments['#attached']['html_head'][] = [
[
'#type' => 'html_tag',
'#tag' => 'script',
'#weight' => -20,
'#attributes' => [
'src' => $signifyd_javascript,
'defer' => TRUE,
'async' => TRUE,
'id' => 'sig-api',
'data-order-session-id' => $order_session_id,
],
],
'signifyd_device_fingerprint',
];
}
}
