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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?php
namespace Elementor\Modules\Announcements\Classes;
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. }
class Announcement {
/** * @var array */ protected $raw_data; /** * @var array */ protected $triggers;
public function __construct( array $data ) { $this->raw_data = $data; $this->set_triggers(); }
/** * @return array */ protected function get_triggers(): array { return $this->triggers; }
protected function set_triggers() { $triggers = $this->raw_data['triggers'] ?? []; foreach ( $triggers as $trigger ) { $this->triggers[] = Utils::get_trigger_object( $trigger ); } }
/** * is_active * @return bool */ public function is_active(): bool { $triggers = $this->get_triggers();
if ( empty( $triggers ) ) { return true; }
foreach ( $triggers as $trigger ) { if ( ! $trigger->is_active() ) { return false; } }
return true; }
public function after_triggered() { foreach ( $this->get_triggers() as $trigger ) { if ( $trigger->is_active() ) { $trigger->after_triggered(); } } }
/** * @return array */ public function get_prepared_data(): array { $raw_data = $this->raw_data; unset( $raw_data['triggers'] );
return $raw_data; } }
|