我对CodeIgniter flashdata持续时间有疑问。问题与电子商务和通过Facebook Pixel和Google Analytics注册活动有关。
目前我正在使用一个变量,比方说它叫做
$this->session->flashdata('purchase_total');
因此,当我到达'purchase-finished'部分时,我有两个事件。
第一个事件(在标题视图中)
fbq('track', 'Purchase', {
value: '<?php echo $this->session->flashdata('purchase_total'); ?>',
currency: 'MXN'
});
第二个事件(在页脚视图中)
ga('ecommerce:addTransaction', {
'id': '<?php echo $this->session->flashdata('id_purchase'); ?>',
'affiliation': 'Printome',
'revenue': '<?php echo $this->session->flashdata('purchase_total'); ?>',
'shipping': '<?php echo $this->session->flashdata('tracking_shipping'); ?>',
'tax': '<?php echo $this->session->flashdata('tax'); ?>',
'currency': 'MXN'
});
ga('ecommerce:send');
现在,purchase_total
在Facebook上正确注册,但在Google Analytics上,交易已注册,但没有purchase_total
。
我检查了CodeIgniter Session Library's Documentation,它说闪存数据可用于一个请求,然后清除。
问题是,在这种情况下,我不确定是否通过调用$this->session->flashdata('purchase_total')
或刷新页面来表示请求。
答案 0 :(得分:0)
在您的情况下,我建议您使用
Tempdata
可以保留有限的时间(可以设置)
可以保存数据,直到当前页面刷新/重新加载。一旦被移动到另一个页面,Flashdata就会被破坏。它可以容纳N个时间但当前页面刷新时会被破坏。
这超出了FlashData
。这可以保存数据多个重定向以及N个时间。但这不像是会话。它就像会话一样。
语法:$this->session->mark_as_temp('item', 300);
Tempdata
和Flashdata
Flashdata TempData
1. Short Time Can hold for Bit long
2. automatically destroyed when page refreshed Can hold until expiration time reaches
3. Page reload not allowed Can Reload or redirect
4. Flashdata name and Value only required Tempdata name, Value only and expiry time Required