PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.9
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.9
4.4.9 4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 All 140 releases
← All changes | inc/Ajax/SendEmailAjax.php +451 -377 4.3.9 → 4.4.9 View file →
@@ -1,377 +1,451 @@
1 -<?php
2 -/**
3 - * class SendEmailAjax
4 - *
5 - * @since 4.2.9.1
6 - * @version 1.0.0
7 - */
8 -
9 -namespace LearnPress\Ajax;
10 -
11 -use Exception;
12 -use LearnPress\Models\UserItems\UserCourseModel;
13 -use LearnPress\Models\UserModel;
14 -use LP_Debug;
15 -use LP_Email;
16 -use LP_Email_Become_An_Instructor;
17 -use LP_Email_Cancelled_Order_Admin;
18 -use LP_Email_Cancelled_Order_Guest;
19 -use LP_Email_Cancelled_Order_Instructor;
20 -use LP_Email_Cancelled_Order_User;
21 -use LP_Email_Completed_Order_Admin;
22 -use LP_Email_Completed_Order_Guest;
23 -use LP_Email_Completed_Order_User;
24 -use LP_Email_Enrolled_Course_Admin;
25 -use LP_Email_Enrolled_Course_Instructor;
26 -use LP_Email_Enrolled_Course_User;
27 -use LP_Email_Finished_Course_Admin;
28 -use LP_Email_Finished_Course_Instructor;
29 -use LP_Email_Finished_Course_User;
30 -use LP_Email_Instructor_Accepted;
31 -use LP_Email_Instructor_Denied;
32 -use LP_Email_New_Order_Admin;
33 -use LP_Email_New_Order_Guest;
34 -use LP_Email_New_Order_Instructor;
35 -use LP_Email_New_Order_User;
36 -use LP_Email_Processing_Order_Guest;
37 -use LP_Email_Processing_Order_User;
38 -use LP_Helper;
39 -use LP_REST_Response;
40 -use Throwable;
41 -
42 -class SendEmailAjax extends AbstractAjax {
43 - /**
44 - * Send mail when order status update to complete
45 - *
46 - * @since 4.2.9.1
47 - * @version 1.0.1
48 - */
49 - public function send_mail_order_status_pending_to_processing() {
50 - $response = new LP_REST_Response();
51 -
52 - try {
53 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
54 -
55 - $email_classes = apply_filters(
56 - 'learn-press/order-status-pending-to-processing/send-mail',
57 - [
58 - LP_Email_New_Order_Admin::class,
59 - LP_Email_New_Order_User::class,
60 - LP_Email_New_Order_Instructor::class,
61 - LP_Email_New_Order_Guest::class,
62 - LP_Email_Processing_Order_User::class,
63 - LP_Email_Processing_Order_Guest::class,
64 - ]
65 - );
66 -
67 - foreach ( $email_classes as $email_class ) {
68 - if ( class_exists( $email_class ) ) {
69 - $email = new $email_class();
70 - /** @var LP_Email $email */
71 - $email->handle( $data_send );
72 - }
73 - }
74 - } catch ( Throwable $e ) {
75 - $response->status = 'error';
76 - $response->message = $e->getMessage();
77 - }
78 -
79 - wp_send_json( $response );
80 - }
81 -
82 - /**
83 - * Send mail when order status update to complete
84 - *
85 - * @since 4.2.9.1
86 - * @version 1.0.1
87 - */
88 - public function send_mail_order_status_pending_to_completed() {
89 - $response = new LP_REST_Response();
90 -
91 - try {
92 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
93 -
94 - $email_classes = apply_filters(
95 - 'learn-press/order-status-pending-to-completed/send-mail',
96 - [
97 - LP_Email_New_Order_Admin::class,
98 - LP_Email_New_Order_User::class,
99 - LP_Email_New_Order_Instructor::class,
100 - LP_Email_New_Order_Guest::class,
101 - ]
102 - );
103 -
104 - foreach ( $email_classes as $email_class ) {
105 - if ( class_exists( $email_class ) ) {
106 - $email = new $email_class();
107 - /** @var LP_Email $email */
108 - $email->handle( $data_send );
109 - }
110 - }
111 - } catch ( Throwable $e ) {
112 - $response->status = 'error';
113 - $response->message = $e->getMessage();
114 - }
115 -
116 - wp_send_json( $response );
117 - }
118 -
119 - /**
120 - * Send mail when order status update to complete
121 - *
122 - * @since 4.2.9.1
123 - * @version 1.0.1
124 - */
125 - public function send_mail_order_status_update_to_completed() {
126 - $response = new LP_REST_Response();
127 -
128 - try {
129 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
130 -
131 - $email_classes = apply_filters(
132 - 'learn-press/order-status-update-to-completed/send-mail',
133 - [
134 - LP_Email_Completed_Order_Admin::class,
135 - LP_Email_Completed_Order_User::class,
136 - LP_Email_Completed_Order_Guest::class,
137 - ]
138 - );
139 -
140 - foreach ( $email_classes as $email_class ) {
141 - if ( class_exists( $email_class ) ) {
142 - $email = new $email_class();
143 - /** @var LP_Email $email */
144 - $email->handle( $data_send );
145 - }
146 - }
147 - } catch ( Throwable $e ) {
148 - $response->status = 'error';
149 - $response->message = $e->getMessage();
150 - }
151 -
152 - wp_send_json( $response );
153 - }
154 -
155 - /**
156 - * Send mail when order status update to cancel
157 - *
158 - * @since 4.2.9.1
159 - * @version 1.0.1
160 - */
161 - public function send_mail_order_status_update_to_cancelled() {
162 - $response = new LP_REST_Response();
163 -
164 - try {
165 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
166 -
167 - $email_classes = apply_filters(
168 - 'learn-press/order-status-update-to-cancelled/send-mail',
169 - [
170 - LP_Email_Cancelled_Order_User::class,
171 - LP_Email_Cancelled_Order_Admin::class,
172 - LP_Email_Cancelled_Order_Guest::class,
173 - LP_Email_Cancelled_Order_Instructor::class,
174 - ]
175 - );
176 -
177 - foreach ( $email_classes as $email_class ) {
178 - if ( class_exists( $email_class ) ) {
179 - $email = new $email_class();
180 - /** @var LP_Email $email */
181 - $email->handle( $data_send );
182 - }
183 - }
184 - } catch ( Throwable $e ) {
185 - $response->status = 'error';
186 - $response->message = $e->getMessage();
187 - }
188 -
189 - wp_send_json( $response );
190 - }
191 -
192 - /**
193 - * Send mails for case multiple users finish courses
194 - * Order has many users, courses change status to completed
195 - *
196 - * @throws Exception
197 - * @version 1.0.1
198 - * @since 4.2.9.1
199 - */
200 - public function send_mail_users_enrolled_courses() {
201 - $user_course_ids = LP_Helper::sanitize_params_submitted( $_POST['user_course_ids'] ?? [] );
202 -
203 - $email_classes = apply_filters(
204 - 'learn-press/users-enrolled-courses/send-mail',
205 - [
206 - LP_Email_Enrolled_Course_User::class,
207 - LP_Email_Enrolled_Course_Admin::class,
208 - LP_Email_Enrolled_Course_Instructor::class,
209 - ]
210 - );
211 -
212 - foreach ( $user_course_ids as $user_course_id ) {
213 - $user_id = $user_course_id['user_id'] ?? 0;
214 - $course_id = $user_course_id['course_id'] ?? 0;
215 - $userCourseModel = UserCourseModel::find( $user_id, $course_id, true );
216 - if ( ! $userCourseModel ) {
217 - continue;
218 - }
219 -
220 - $data_send = [
221 - $userCourseModel->ref_id,
222 - $userCourseModel->item_id,
223 - $userCourseModel->user_id,
224 - ];
225 -
226 - foreach ( $email_classes as $email_class ) {
227 - if ( class_exists( $email_class ) ) {
228 - $email = new $email_class();
229 - /** @var LP_Email $email */
230 - $email->handle( $data_send );
231 - }
232 - }
233 - }
234 - }
235 -
236 - /**
237 - * Send mail for case a user enrolled a course.
238 - *
239 - * @throws Exception
240 - * @version 1.0.1
241 - * @since 4.2.9.1
242 - */
243 - public function send_mail_user_enrolled_course() {
244 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
245 -
246 - $email_classes = apply_filters(
247 - 'learn-press/user-enrolled-course/send-mail',
248 - [
249 - LP_Email_Enrolled_Course_User::class,
250 - LP_Email_Enrolled_Course_Admin::class,
251 - LP_Email_Enrolled_Course_Instructor::class,
252 - ]
253 - );
254 -
255 - foreach ( $email_classes as $email_class ) {
256 - if ( class_exists( $email_class ) ) {
257 - $email = new $email_class();
258 - /** @var LP_Email $email */
259 - $email->handle( $data_send );
260 - }
261 - }
262 - }
263 -
264 - /**
265 - * Send mail when user finish course
266 - *
267 - * @since 4.2.9.1
268 - * @version 1.0.1
269 - */
270 - public function send_mail_user_course_finished() {
271 - $response = new LP_REST_Response();
272 -
273 - try {
274 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
275 -
276 - $email_classes = apply_filters(
277 - 'learn-press/user-finished-course/send-mail',
278 - [
279 - LP_Email_Finished_Course_Admin::class,
280 - LP_Email_Finished_Course_User::class,
281 - LP_Email_Finished_Course_Instructor::class,
282 - ]
283 - );
284 -
285 - foreach ( $email_classes as $email_class ) {
286 - if ( class_exists( $email_class ) ) {
287 - $email = new $email_class();
288 - /** @var LP_Email $email */
289 - $email->handle( $data_send );
290 - }
291 - }
292 - } catch ( Throwable $e ) {
293 - $response->status = 'error';
294 - $response->message = $e->getMessage();
295 - }
296 -
297 - wp_send_json( $response );
298 - }
299 -
300 - /**
301 - * Send mail when user request to become a teacher
302 - *
303 - * @since 4.2.9.1
304 - * @version 1.0.0
305 - */
306 - public function send_mail_become_a_teacher_request() {
307 - $response = new LP_REST_Response();
308 -
309 - try {
310 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
311 -
312 - $email = new LP_Email_Become_An_Instructor();
313 - $email->handle( $data_send );
314 - } catch ( Throwable $e ) {
315 - $response->status = 'error';
316 - $response->message = $e->getMessage();
317 - }
318 -
319 - wp_send_json( $response );
320 - }
321 -
322 - /**
323 - * Send mail when admin accept user become a teacher
324 - *
325 - * @since 4.2.9.1
326 - * @version 1.0.1
327 - */
328 - public function send_mail_become_a_teacher_accept() {
329 - $response = new LP_REST_Response();
330 -
331 - try {
332 - // Check permission
333 - if ( ! current_user_can( UserModel::ROLE_ADMINISTRATOR ) ) {
334 - return;
335 - }
336 -
337 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
338 -
339 - $email = new LP_Email_Instructor_Accepted();
340 - $email->handle( $data_send );
341 - } catch ( Throwable $e ) {
342 - $response->status = 'error';
343 - $response->message = $e->getMessage();
344 - LP_Debug::error_log( $e );
345 - }
346 -
347 - wp_send_json( $response );
348 - }
349 -
350 - /**
351 - * Send mail when admin deny user become a teacher
352 - *
353 - * @since 4.2.9.1
354 - * @version 1.0.0
355 - */
356 - public function send_mail_become_a_teacher_deny() {
357 - $response = new LP_REST_Response();
358 -
359 - try {
360 - // Check permission
361 - if ( ! current_user_can( UserModel::ROLE_ADMINISTRATOR ) ) {
362 - return;
363 - }
364 -
365 - $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
366 -
367 - $email = new LP_Email_Instructor_Denied();
368 - $email->handle( $data_send );
369 - } catch ( Throwable $e ) {
370 - $response->status = 'error';
371 - $response->message = $e->getMessage();
372 - LP_Debug::error_log( $e );
373 - }
374 -
375 - wp_send_json( $response );
376 - }
377 -}
1 +<?php
2 +/**
3 + * class SendEmailAjax
4 + *
5 + * @since 4.2.9.1
6 + * @version 1.0.0
7 + */
8 +
9 +namespace LearnPress\Ajax;
10 +
11 +use Exception;
12 +use LearnPress\Models\UserItems\UserCourseModel;
13 +use LearnPress\Models\UserModel;
14 +use LP_Debug;
15 +use LP_Email;
16 +use LP_Email_Become_An_Instructor;
17 +use LP_Email_Cancelled_Order_Admin;
18 +use LP_Email_Cancelled_Order_Guest;
19 +use LP_Email_Cancelled_Order_Instructor;
20 +use LP_Email_Cancelled_Order_User;
21 +use LP_Email_Completed_Order_Admin;
22 +use LP_Email_Completed_Order_Guest;
23 +use LP_Email_Completed_Order_User;
24 +use LP_Email_Enrolled_Course_Admin;
25 +use LP_Email_Enrolled_Course_Instructor;
26 +use LP_Email_Enrolled_Course_User;
27 +use LP_Email_Finished_Course_Admin;
28 +use LP_Email_Finished_Course_Instructor;
29 +use LP_Email_Finished_Course_User;
30 +use LP_Email_Instructor_Accepted;
31 +use LP_Email_Instructor_Denied;
32 +use LP_Email_New_Order_Admin;
33 +use LP_Email_New_Order_Guest;
34 +use LP_Email_New_Order_Instructor;
35 +use LP_Email_New_Order_User;
36 +use LP_Email_Processing_Order_Guest;
37 +use LP_Email_Processing_Order_User;
38 +use LP_Email_Refund_Request_Order_Admin;
39 +use LP_Email_Refunded_Order_Admin;
40 +use LP_Email_Refunded_Order_Instructor;
41 +use LP_Email_Refunded_Order_User;
42 +use LP_Helper;
43 +use LP_REST_Response;
44 +use Throwable;
45 +
46 +class SendEmailAjax extends AbstractAjax {
47 + /**
48 + * Send mail when order status update to complete
49 + *
50 + * @since 4.2.9.1
51 + * @version 1.0.1
52 + */
53 + public function send_mail_order_status_pending_to_processing() {
54 + $response = new LP_REST_Response();
55 +
56 + try {
57 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
58 +
59 + $email_classes = apply_filters(
60 + 'learn-press/order-status-pending-to-processing/send-mail',
61 + [
62 + LP_Email_New_Order_Admin::class,
63 + LP_Email_New_Order_User::class,
64 + LP_Email_New_Order_Instructor::class,
65 + LP_Email_New_Order_Guest::class,
66 + LP_Email_Processing_Order_User::class,
67 + LP_Email_Processing_Order_Guest::class,
68 + ]
69 + );
70 +
71 + foreach ( $email_classes as $email_class ) {
72 + if ( class_exists( $email_class ) ) {
73 + $email = new $email_class();
74 + /** @var LP_Email $email */
75 + $email->handle( $data_send );
76 + }
77 + }
78 + } catch ( Throwable $e ) {
79 + $response->status = 'error';
80 + $response->message = $e->getMessage();
81 + }
82 +
83 + wp_send_json( $response );
84 + }
85 +
86 + /**
87 + * Send mail when order status update to complete
88 + *
89 + * @since 4.2.9.1
90 + * @version 1.0.1
91 + */
92 + public function send_mail_order_status_pending_to_completed() {
93 + $response = new LP_REST_Response();
94 +
95 + try {
96 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
97 +
98 + $email_classes = apply_filters(
99 + 'learn-press/order-status-pending-to-completed/send-mail',
100 + [
101 + LP_Email_New_Order_Admin::class,
102 + LP_Email_New_Order_User::class,
103 + LP_Email_New_Order_Instructor::class,
104 + LP_Email_New_Order_Guest::class,
105 + ]
106 + );
107 +
108 + foreach ( $email_classes as $email_class ) {
109 + if ( class_exists( $email_class ) ) {
110 + $email = new $email_class();
111 + /** @var LP_Email $email */
112 + $email->handle( $data_send );
113 + }
114 + }
115 + } catch ( Throwable $e ) {
116 + $response->status = 'error';
117 + $response->message = $e->getMessage();
118 + }
119 +
120 + wp_send_json( $response );
121 + }
122 +
123 + /**
124 + * Send mail when order status update to complete
125 + *
126 + * @since 4.2.9.1
127 + * @version 1.0.1
128 + */
129 + public function send_mail_order_status_update_to_completed() {
130 + $response = new LP_REST_Response();
131 +
132 + try {
133 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
134 +
135 + $email_classes = apply_filters(
136 + 'learn-press/order-status-update-to-completed/send-mail',
137 + [
138 + LP_Email_Completed_Order_Admin::class,
139 + LP_Email_Completed_Order_User::class,
140 + LP_Email_Completed_Order_Guest::class,
141 + ]
142 + );
143 +
144 + foreach ( $email_classes as $email_class ) {
145 + if ( class_exists( $email_class ) ) {
146 + $email = new $email_class();
147 + /** @var LP_Email $email */
148 + $email->handle( $data_send );
149 + }
150 + }
151 + } catch ( Throwable $e ) {
152 + $response->status = 'error';
153 + $response->message = $e->getMessage();
154 + }
155 +
156 + wp_send_json( $response );
157 + }
158 +
159 + /**
160 + * Send mail when order status update to cancel
161 + *
162 + * @since 4.2.9.1
163 + * @version 1.0.1
164 + */
165 + public function send_mail_order_status_update_to_cancelled() {
166 + $response = new LP_REST_Response();
167 +
168 + try {
169 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
170 +
171 + $email_classes = apply_filters(
172 + 'learn-press/order-status-update-to-cancelled/send-mail',
173 + [
174 + LP_Email_Cancelled_Order_User::class,
175 + LP_Email_Cancelled_Order_Admin::class,
176 + LP_Email_Cancelled_Order_Guest::class,
177 + LP_Email_Cancelled_Order_Instructor::class,
178 + ]
179 + );
180 +
181 + foreach ( $email_classes as $email_class ) {
182 + if ( class_exists( $email_class ) ) {
183 + $email = new $email_class();
184 + /** @var LP_Email $email */
185 + $email->handle( $data_send );
186 + }
187 + }
188 + } catch ( Throwable $e ) {
189 + $response->status = 'error';
190 + $response->message = $e->getMessage();
191 + }
192 +
193 + wp_send_json( $response );
194 + }
195 +
196 + /**
197 + * Send mail when order status update to refunded.
198 + *
199 + * @since 4.3.4
200 + * @version 1.0.0
201 + */
202 + public function send_mail_order_status_update_to_refunded() {
203 + $response = new LP_REST_Response();
204 +
205 + try {
206 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
207 +
208 + $email_classes = apply_filters(
209 + 'learn-press/order-status-update-to-refunded/send-mail',
210 + [
211 + LP_Email_Refunded_Order_User::class,
212 + LP_Email_Refunded_Order_Admin::class,
213 + LP_Email_Refunded_Order_Instructor::class,
214 + ]
215 + );
216 +
217 + foreach ( $email_classes as $email_class ) {
218 + if ( class_exists( $email_class ) ) {
219 + $email = new $email_class();
220 + /** @var LP_Email $email */
221 + $email->handle( $data_send );
222 + }
223 + }
224 + } catch ( Throwable $e ) {
225 + $response->status = 'error';
226 + $response->message = $e->getMessage();
227 + }
228 +
229 + wp_send_json( $response );
230 + }
231 +
232 + /**
233 + * Send mail when order has a refund request from user.
234 + *
235 + * @since 4.3.4
236 + * @version 1.0.0
237 + */
238 + public function send_mail_order_refund_requested() {
239 + $response = new LP_REST_Response();
240 +
241 + try {
242 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
243 +
244 + $email_classes = apply_filters(
245 + 'learn-press/order-refund-requested/send-mail',
246 + [
247 + LP_Email_Refund_Request_Order_Admin::class,
248 + ]
249 + );
250 +
251 + foreach ( $email_classes as $email_class ) {
252 + if ( class_exists( $email_class ) ) {
253 + $email = new $email_class();
254 + /** @var LP_Email $email */
255 + $email->handle( $data_send );
256 + }
257 + }
258 + } catch ( Throwable $e ) {
259 + $response->status = 'error';
260 + $response->message = $e->getMessage();
261 + }
262 +
263 + wp_send_json( $response );
264 + }
265 +
266 + /**
267 + * Send mails for case multiple users finish courses
268 + * Order has many users, courses change status to completed
269 + *
270 + * @throws Exception
271 + * @version 1.0.1
272 + * @since 4.2.9.1
273 + */
274 + public function send_mail_users_enrolled_courses() {
275 + $user_course_ids = LP_Helper::sanitize_params_submitted( $_POST['user_course_ids'] ?? [] );
276 +
277 + $email_classes = apply_filters(
278 + 'learn-press/users-enrolled-courses/send-mail',
279 + [
280 + LP_Email_Enrolled_Course_User::class,
281 + LP_Email_Enrolled_Course_Admin::class,
282 + LP_Email_Enrolled_Course_Instructor::class,
283 + ]
284 + );
285 +
286 + foreach ( $user_course_ids as $user_course_id ) {
287 + $user_id = $user_course_id['user_id'] ?? 0;
288 + $course_id = $user_course_id['course_id'] ?? 0;
289 + $userCourseModel = UserCourseModel::find( $user_id, $course_id, true );
290 + if ( ! $userCourseModel ) {
291 + continue;
292 + }
293 +
294 + $data_send = [
295 + $userCourseModel->ref_id,
296 + $userCourseModel->item_id,
297 + $userCourseModel->user_id,
298 + ];
299 +
300 + foreach ( $email_classes as $email_class ) {
301 + if ( class_exists( $email_class ) ) {
302 + $email = new $email_class();
303 + /** @var LP_Email $email */
304 + $email->handle( $data_send );
305 + }
306 + }
307 + }
308 + }
309 +
310 + /**
311 + * Send mail for case a user enrolled a course.
312 + *
313 + * @throws Exception
314 + * @version 1.0.1
315 + * @since 4.2.9.1
316 + */
317 + public function send_mail_user_enrolled_course() {
318 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
319 +
320 + $email_classes = apply_filters(
321 + 'learn-press/user-enrolled-course/send-mail',
322 + [
323 + LP_Email_Enrolled_Course_User::class,
324 + LP_Email_Enrolled_Course_Admin::class,
325 + LP_Email_Enrolled_Course_Instructor::class,
326 + ]
327 + );
328 +
329 + foreach ( $email_classes as $email_class ) {
330 + if ( class_exists( $email_class ) ) {
331 + $email = new $email_class();
332 + /** @var LP_Email $email */
333 + $email->handle( $data_send );
334 + }
335 + }
336 + }
337 +
338 + /**
339 + * Send mail when user finish course
340 + *
341 + * @since 4.2.9.1
342 + * @version 1.0.1
343 + */
344 + public function send_mail_user_course_finished() {
345 + $response = new LP_REST_Response();
346 +
347 + try {
348 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
349 +
350 + $email_classes = apply_filters(
351 + 'learn-press/user-finished-course/send-mail',
352 + [
353 + LP_Email_Finished_Course_Admin::class,
354 + LP_Email_Finished_Course_User::class,
355 + LP_Email_Finished_Course_Instructor::class,
356 + ]
357 + );
358 +
359 + foreach ( $email_classes as $email_class ) {
360 + if ( class_exists( $email_class ) ) {
361 + $email = new $email_class();
362 + /** @var LP_Email $email */
363 + $email->handle( $data_send );
364 + }
365 + }
366 + } catch ( Throwable $e ) {
367 + $response->status = 'error';
368 + $response->message = $e->getMessage();
369 + }
370 +
371 + wp_send_json( $response );
372 + }
373 +
374 + /**
375 + * Send mail when user request to become a teacher
376 + *
377 + * @since 4.2.9.1
378 + * @version 1.0.0
379 + */
380 + public function send_mail_become_a_teacher_request() {
381 + $response = new LP_REST_Response();
382 +
383 + try {
384 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
385 +
386 + $email = new LP_Email_Become_An_Instructor();
387 + $email->handle( $data_send );
388 + } catch ( Throwable $e ) {
389 + $response->status = 'error';
390 + $response->message = $e->getMessage();
391 + }
392 +
393 + wp_send_json( $response );
394 + }
395 +
396 + /**
397 + * Send mail when admin accept user become a teacher
398 + *
399 + * @since 4.2.9.1
400 + * @version 1.0.1
401 + */
402 + public function send_mail_become_a_teacher_accept() {
403 + $response = new LP_REST_Response();
404 +
405 + try {
406 + // Check permission
407 + if ( ! current_user_can( UserModel::ROLE_ADMINISTRATOR ) ) {
408 + return;
409 + }
410 +
411 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
412 +
413 + $email = new LP_Email_Instructor_Accepted();
414 + $email->handle( $data_send );
415 + } catch ( Throwable $e ) {
416 + $response->status = 'error';
417 + $response->message = $e->getMessage();
418 + LP_Debug::error_log( $e );
419 + }
420 +
421 + wp_send_json( $response );
422 + }
423 +
424 + /**
425 + * Send mail when admin deny user become a teacher
426 + *
427 + * @since 4.2.9.1
428 + * @version 1.0.0
429 + */
430 + public function send_mail_become_a_teacher_deny() {
431 + $response = new LP_REST_Response();
432 +
433 + try {
434 + // Check permission
435 + if ( ! current_user_can( UserModel::ROLE_ADMINISTRATOR ) ) {
436 + return;
437 + }
438 +
439 + $data_send = LP_Helper::sanitize_params_submitted( $_POST['params'] ?? [] );
440 +
441 + $email = new LP_Email_Instructor_Denied();
442 + $email->handle( $data_send );
443 + } catch ( Throwable $e ) {
444 + $response->status = 'error';
445 + $response->message = $e->getMessage();
446 + LP_Debug::error_log( $e );
447 + }
448 +
449 + wp_send_json( $response );
450 + }
451 +}