ใน Drupal 9 เรามี _preprocess_node() hook ที่โหลดคุกกี้ผู้ใช้เช่น:
ฟังก์ชัน THEME_preprocess_node(&$ตัวแปร) {
$พารามิเตอร์ = [];
ถ้า (isset($_COOKIE['utm_source'])){
$parameters[] = 'utm_source=' $_COOKIE['utm_source'];
$parameters['#cache']['contexts'][] = 'คุกกี้:utm_source';
}
ถ้า (isset($_COOKIE['utm_medium'])){
$พารามิเตอร์[] = 'utm_medium=' $_COOKIE['utm_medium'];
$parameters['#cache']['contexts'][] = 'คุกกี้:utm_medium';
}
ถ้า (isset($_COOKIE['utm_campaign'])){
$parameters[] = 'utm_campaign=' $_COOKIE['utm_campaign'];
$parameters['#cache']['contexts'][] = 'คุกกี้:utm_campaign';
}
$parameters = implode('&', $parameters);
$ตัวแปร['พารามิเตอร์'] = '&' $พารามิเตอร์;
}
ในเทมเพลต Node ของฉัน:
{{ พารามิเตอร์ }}
แต่จะโหลดคุกกี้ที่แคชไว้ แม้กระทั่งจากผู้เยี่ยมชมรายอื่น จนกว่าแคชจะถูกล้าง
เรากำลังพยายามโหลดพารามิเตอร์คุกกี้ลงในเทมเพลตโหนด แต่ดูเหมือนว่าตัวประมวลผลล่วงหน้ากำลังแคชข้อมูลอยู่ แม้จะปิดโมดูลแคชทั้งหมดแล้วก็ตาม
มีวิธีอื่นอีกไหมที่เราควรตรวจสอบและส่งข้อมูลคุกกี้ไปยังเทมเพลตโหนด