CodeIgniter flashdata持续时间

时间:2017-05-08 16:49:43

标签: php facebook codeigniter session google-analytics

我对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')或刷新页面来表示请求。

1 个答案:

答案 0 :(得分:0)

  

在您的情况下,我建议您使用Tempdata可以保留有限的时间(可以设置)

FlashData

可以保存数据,直到当前页面刷新/重新加载。一旦被移动到另一个页面,Flashdata就会被破坏。它可以容纳N个时间但当前页面刷新时会被破坏。

TempData的

这超出了FlashData。这可以保存数据多个重定向以及N个时间。但这不像是会话。它就像会话一样。

语法$this->session->mark_as_temp('item', 300);

TempdataFlashdata

之间的差异
       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 

链接

  1. Tempdata - codeigniter.com
  2. Flashdata- codeigniter.com