File size: 953 Bytes
d2897cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

namespace Mautic\CampaignBundle\Helper;

use Mautic\CampaignBundle\Event\CampaignLeadChangeEvent;

class CampaignEventHelper
{
    /**
     * Determine if this campaign applies.
     */
    public static function validateLeadChangeTrigger(CampaignLeadChangeEvent $eventDetails = null, array $event): bool
    {
        if (null == $eventDetails) {
            return true;
        }

        $limitToCampaigns = $event['properties']['campaigns'];
        $action           = $event['properties']['action'];

        // check against selected campaigns
        if (!empty($limitToCampaigns) && !in_array($event['campaign']['id'], $limitToCampaigns)) {
            return false;
        }

        // check against the selected action (was lead removed or added)
        $func = 'was'.ucfirst($action);
        if (!method_exists($eventDetails, $func) || !$eventDetails->$func()) {
            return false;
        }

        return true;
    }
}