PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / newsletter / triggers / subscription-form-submitted-list.php
suretriggers / src / Integrations / newsletter / triggers Last commit date
subscription-form-submitted-list.php 2 years ago
subscription-form-submitted-list.php
148 lines
1 <?php
2 /**
3 * SubscriptionFormSubmittedList.
4 * php version 5.6
5 *
6 * @category SubscriptionFormSubmittedList
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\Newsletter\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19
20 if ( ! class_exists( 'SubscriptionFormSubmittedList' ) ) :
21
22 /**
23 * SubscriptionFormSubmittedList
24 *
25 * @category SubscriptionFormSubmittedList
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 SubscriptionFormSubmittedList {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'Newsletter';
43
44
45 /**
46 * Trigger name.
47 *
48 * @var string
49 */
50 public $trigger = 'subscription_form_submitted_list';
51
52 use SingletonLoader;
53
54
55 /**
56 * Constructor
57 *
58 * @since 1.0.0
59 */
60 public function __construct() {
61 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
62 }
63
64 /**
65 * Register action.
66 *
67 * @param array $triggers trigger data.
68 * @return array
69 */
70 public function register( $triggers ) {
71
72 $triggers[ $this->integration ][ $this->trigger ] = [
73 'label' => __( 'Subscription Form Submitted with Specific List', 'suretriggers' ),
74 'action' => $this->trigger,
75 'common_action' => 'newsletter_user_post_subscribe',
76 'function' => [ $this, 'trigger_listener' ],
77 'priority' => 20,
78 'accepted_args' => 1,
79 ];
80
81 return $triggers;
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param object $user User.
88 * @return void
89 */
90 public function trigger_listener( $user ) {
91
92 global $wpdb;
93
94 if ( property_exists( $user, 'id' ) ) {
95 $user_id = $user->id;
96
97 $log = $wpdb->get_row( $wpdb->prepare( 'SELECT * FROM ' . $wpdb->prefix . "newsletter_user_logs WHERE user_id = %d AND source = 'subscribe'", $user_id ) );
98
99 if ( null === $log ) {
100 return;
101 }
102
103 if ( ! isset( $log->data ) && null !== $log->data ) {
104 return;
105 }
106 if ( null === $log->data ) {
107 return;
108 }
109
110 $lists_arr = get_option( 'newsletter_lists' );
111 $lists = json_decode( $log->data, true );
112 foreach ( (array) $lists as $list_id => $status ) {
113 if ( '1' !== $status ) {
114 continue;
115 }
116 if ( property_exists( $user, 'email' ) ) {
117 $context['email'] = $user->email;
118 }
119 $context['list_id'] = $list_id;
120 if ( is_array( $lists_arr ) ) {
121 if ( isset( $lists_arr[ $list_id ] ) ) {
122 $list_name = $lists_arr[ $list_id ];
123 $context['list_name'] = $list_name;
124 }
125 }
126 }
127 }
128
129 if ( ! empty( $context ) ) {
130 AutomationController::sure_trigger_handle_trigger(
131 [
132 'trigger' => $this->trigger,
133 'context' => $context,
134 ]
135 );
136 }
137 }
138 }
139
140 /**
141 * Ignore false positive
142 *
143 * @psalm-suppress UndefinedMethod
144 */
145 SubscriptionFormSubmittedList::get_instance();
146
147 endif;
148