PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.1.6.9
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.1.6.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 4.2.0 All 139 releases
learnpress / inc / emails / class-lp-email-hooks.php

class-lp-email-hooks.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.1.6.9, at inc/emails/class-lp-email-hooks.php

132 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'ABSPATH' ) || exit();
3
4 if ( ! class_exists( 'LP_Email_Hooks' ) ) {
5
6 /**
7 * Class LP_Email_Hooks
8 */
9 class LP_Email_Hooks {
10 protected static $instance;
11 protected $actions;
12
13 protected function __construct() {
14 // Define class handle send email with hook corresponding
15 $this->actions = apply_filters(
16 'learn-press/email-actions',
17 [
18 // preview course
19 'learn_press_course_submit_rejected',
20 'learn_press_course_submit_approved',
21 'learn_press_course_submit_for_reviewer',
22
23 // New order
24 'learn-press/order/status-pending-to-processing' => [
25 LP_Email_New_Order_Admin::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-new-order-admin.php',
26 LP_Email_New_Order_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-new-order-user.php',
27 LP_Email_New_Order_Instructor::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-new-order-instructor.php',
28 LP_Email_New_Order_Guest::class => LP_PLUGIN_PATH . 'inc/emails/guest/class-lp-email-new-order-guest.php',
29 LP_Email_Processing_Order_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-processing-order-user.php',
30 LP_Email_Processing_Order_Guest::class => LP_PLUGIN_PATH . 'inc/emails/guest/class-lp-email-processing-order-guest.php',
31 ],
32 'learn-press/order/status-pending-to-completed' => [
33 LP_Email_New_Order_Admin::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-new-order-admin.php',
34 LP_Email_New_Order_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-new-order-user.php',
35 LP_Email_New_Order_Instructor::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-new-order-instructor.php',
36 LP_Email_New_Order_Guest::class => LP_PLUGIN_PATH . 'inc/emails/guest/class-lp-email-new-order-guest.php',
37 ],
38
39 // Completed order
40 'learn-press/order/status-completed' => [
41 LP_Email_Completed_Order_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-completed-order-user.php',
42 LP_Email_Completed_Order_Admin::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-completed-order-admin.php',
43 LP_Email_Completed_Order_Guest::class => LP_PLUGIN_PATH . 'inc/emails/guest/class-lp-email-completed-order-guest.php',
44 ],
45
46 // User enrolled course when order completed before
47 'learnpress/user/course-enrolled' => [
48 LP_Email_Enrolled_Course_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-enrolled-course-user.php',
49 LP_Email_Enrolled_Course_Admin::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-enrolled-course-admin.php',
50 LP_Email_Enrolled_Course_Instructor::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-enrolled-course-instructor.php',
51 ],
52
53 // Cancelled order
54 'learn-press/order/status-cancelled' => [
55 LP_Email_Cancelled_Order_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-cancelled-order-user.php',
56 LP_Email_Cancelled_Order_Admin::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-cancelled-order-admin.php',
57 LP_Email_Cancelled_Order_Guest::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-cancelled-order-guest.php',
58 LP_Email_Cancelled_Order_Instructor::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-cancelled-order-instructor.php',
59 ],
60
61 // Finished course
62 'learn-press/user-course-finished' => [
63 LP_Email_Finished_Course_Admin::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-finished-course-admin.php',
64 LP_Email_Finished_Course_User::class => LP_PLUGIN_PATH . 'inc/emails/student/class-lp-email-finished-course-user.php',
65 LP_Email_Finished_Course_Instructor::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-finished-course-instructor.php',
66 ],
67
68 // User become a teacher
69 'learn-press/become-a-teacher-sent' => [
70 LP_Email_Become_An_Instructor::class => LP_PLUGIN_PATH . 'inc/emails/admin/class-lp-email-become-an-instructor.php',
71 ],
72 'learn-press/user-become-a-teacher-accept' => [
73 LP_Email_Instructor_Accepted::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-instructor-accepted.php',
74 ],
75 'learn-press/user-become-a-teacher-deny' => [
76 LP_Email_Instructor_Denied::class => LP_PLUGIN_PATH . 'inc/emails/instructor/class-lp-email-instructor-denied.php',
77 ],
78 ]
79 );
80
81 foreach ( $this->actions as $tag_hook => $action ) {
82 add_action( $tag_hook, array( $this, 'handle_send_email_on_background' ), 10, 10 );
83 }
84 }
85
86 protected function include() {
87 }
88
89 /**
90 * Call background email
91 * Check hook and call class email corresponding
92 *
93 * @author tungnx
94 * @since 4.1.1
95 * @version 1.0.0
96 */
97 public function handle_send_email_on_background() {
98 $args = func_get_args();
99 $email_bg = LP_Background_Single_Email::instance();
100 $current_filter = current_filter();
101
102 try {
103 if ( isset( $this->actions[ $current_filter ] ) && is_array( $this->actions[ $current_filter ] ) ) {
104 foreach ( $this->actions[ $current_filter ] as $class_email => $path_file ) {
105 $data_send = [
106 'params' => $args,
107 'class_name' => $class_email,
108 ];
109 $email_bg->data( $data_send )->dispatch();
110 }
111 }
112 } catch ( Throwable $e ) {
113 error_log( $e->getMessage() );
114 }
115 }
116
117 /**
118 * @return LP_Email_Hooks
119 */
120 public static function instance(): self {
121 if ( is_null( self::$instance ) ) {
122 self::$instance = new self();
123 }
124
125 return self::$instance;
126 }
127 }
128
129 LP_Email_Hooks::instance();
130 }
131
132