PluginProbe
OttoKit: All-in-One Automation Platform / 1.1.34
OttoKit: All-in-One Automation Platform v1.1.34
1.1.38 1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 All 124 releases
suretriggers / src / Integrations / mailerpress / triggers / campaign-created.php
campaign-created.php
132 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * CampaignCreated.
4 * php version 5.6
5 *
6 * @category CampaignCreated
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\MailerPress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19
20 if ( ! class_exists( 'CampaignCreated' ) ) :
21
22 /**
23 * CampaignCreated
24 *
25 * @category CampaignCreated
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 *
32 * @psalm-suppress UndefinedTrait
33 */
34 class CampaignCreated {
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'MailerPress';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'mailerpress_campaign_created';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68 $triggers[ $this->integration ][ $this->trigger ] = [
69 'label' => __( 'Campaign Created', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => 'mailerpress_campaign_created',
72 'function' => [ $this, 'trigger_listener' ],
73 'priority' => 10,
74 'accepted_args' => 1,
75 ];
76
77 return $triggers;
78 }
79
80 /**
81 * Trigger listener
82 *
83 * @param int $campaign_id Campaign ID.
84 * @return void
85 */
86 public function trigger_listener( $campaign_id ) {
87 if ( empty( $campaign_id ) ) {
88 return;
89 }
90
91 global $wpdb;
92
93 // Get campaign details.
94 $campaign = $wpdb->get_row(
95 $wpdb->prepare(
96 'SELECT * FROM `' . esc_sql( $wpdb->prefix . 'mailerpress_campaigns' ) . '` WHERE campaign_id = %d',
97 $campaign_id
98 )
99 );
100
101 if ( ! $campaign ) {
102 return;
103 }
104
105 $context = WordPress::get_user_context( get_current_user_id() );
106 $context['campaign'] = [
107 'campaign_id' => (int) $campaign->campaign_id,
108 'name' => $campaign->name,
109 'subject' => $campaign->subject,
110 'status' => $campaign->status,
111 'type' => $campaign->type,
112 'created_at' => $campaign->created_at,
113 'updated_at' => $campaign->updated_at,
114 ];
115 AutomationController::sure_trigger_handle_trigger(
116 [
117 'trigger' => $this->trigger,
118 'context' => $context,
119 ]
120 );
121 }
122 }
123
124 /**
125 * Ignore false positive
126 *
127 * @psalm-suppress UndefinedMethod
128 */
129 CampaignCreated::get_instance();
130
131 endif;
132