Last active
October 20, 2020 22:33
-
-
Save BillCacy/e7fda8418f7165789766f853fec4d198 to your computer and use it in GitHub Desktop.
Override of Sitecore.Analytics.Pipelines.StartTracking.ProcessQueryStringCampaign to prevent campaign triggering when the end date has passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using Sitecore.Abstractions; | |
using Sitecore.Analytics.Pipelines.StartTracking; | |
using Sitecore.Data; | |
namespace YOURNAMESPACE.Analytics.Pipelines.StartTracking | |
{ | |
public class ProcessQueryStringCampaignEx : ProcessQueryStringCampaign | |
{ | |
public ProcessQueryStringCampaignEx() : base() { } | |
public ProcessQueryStringCampaignEx(BaseLog logger, string campaignQueryStringKey) : base(logger, campaignQueryStringKey) { } | |
protected override void TriggerCampaign(string campaign) | |
{ | |
var campaignDefinition = !ShortID.IsShortID(campaign) ? (!ID.IsID(campaign) ? FindCampaignByName(campaign) : FindCampaignById(new ID(campaign))) : FindCampaignById(ShortID.DecodeID(campaign)); | |
if (campaignDefinition == null) | |
{ | |
Logger.Error("Campaign not found: " + campaign, typeof(ProcessQueryStringCampaign)); | |
} | |
else | |
{ | |
// Don't trigger the campaign if it's expired. | |
// NEW | |
if (DateTime.UtcNow >= campaignDefinition.EndDate) | |
{ | |
return; | |
} | |
// END NEW | |
var campaignId1 = CurrentTracker.Session.Interaction.CampaignId; | |
var trafficType1 = CurrentTracker.Session.Interaction.TrafficType; | |
CurrentTracker.CurrentPage.TriggerCampaign(campaignDefinition); | |
var campaignId2 = CurrentTracker.Session.Interaction.CampaignId; | |
var trafficType2 = CurrentTracker.Session.Interaction.TrafficType; | |
var nullable = campaignId1; | |
var campaignId3 = CurrentTracker.Session.Interaction.CampaignId; | |
if ((nullable.HasValue == campaignId3.HasValue ? (nullable.HasValue ? (nullable.GetValueOrDefault() != campaignId3.GetValueOrDefault() ? 1 : 0) : 0) : 1) != 0) | |
SubscribeCampaignIdRollbackToOnCurrentPageCancelled(campaignId2); | |
if (trafficType1 == trafficType2) | |
return; | |
SubscribeTrafficTypeRollbackToOnCurrentPageCancelled(trafficType2); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment