PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / memberpress-course / actions / reset-user-progress.php
suretriggers / src / Integrations / memberpress-course / actions Last commit date
complete-course.php 3 months ago complete-lesson.php 10 months ago reset-user-progress.php 10 months ago
reset-user-progress.php
121 lines
1 <?php
2 /**
3 * ResetCourseProgress.
4 * php version 5.6
5 *
6 * @category ResetCourseProgress
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\MemberPressCourse\Actions;
15
16 use Exception;
17 use memberpress\courses\lib as lib;
18 use SureTriggers\Integrations\MemberPressCourse\MemberPressCourse;
19 use memberpress\courses as base;
20 use memberpress\courses\models as models;
21 use SureTriggers\Integrations\AutomateAction;
22 use SureTriggers\Traits\SingletonLoader;
23
24 /**
25 * ResetCourseProgress
26 *
27 * @category ResetCourseProgress
28 * @package SureTriggers
29 * @author BSF <username@example.com>
30 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
31 * @link https://www.brainstormforce.com/
32 * @since 1.0.0
33 */
34 class ResetCourseProgress extends AutomateAction {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'MemberPressCourse';
43
44 /**
45 * Action name.
46 *
47 * @var string
48 */
49 public $action = 'mpc_reset_progress';
50
51 use SingletonLoader;
52
53 /**
54 * Register a action.
55 *
56 * @param array $actions actions.
57 * @return array
58 */
59 public function register( $actions ) {
60 $actions[ $this->integration ][ $this->action ] = [
61 'label' => __( 'Reset Course Progress', 'suretriggers' ),
62 'action' => $this->action,
63 'function' => [ $this, 'action_listener' ],
64 ];
65 return $actions;
66 }
67
68 /**
69 * Action listener.
70 *
71 * @param int $user_id user_id.
72 * @param int $automation_id automation_id.
73 * @param array $fields fields.
74 * @param array $selected_options selectedOptions.
75 * @throws Exception Throws exception.
76 *
77 * @return array|void
78 */
79 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
80 if ( ! $user_id ) {
81 return [
82 'status' => 'error',
83 'message' => 'User not found with this email address.',
84 ];
85 }
86 if ( ! class_exists( '\memberpress\courses\models\UserProgress' ) ) {
87 return [
88 'status' => 'error',
89 'message' => __( '\memberpress\courses\models\UserProgress class not found.', 'suretriggers' ),
90
91 ];
92 }
93
94 $course_id = $selected_options['course'];
95 $user_progresses = (array) models\UserProgress::find_all_by_user_and_course( $user_id, $course_id );
96 if ( count( $user_progresses ) == 0 ) {
97 return [
98 'status' => 'error',
99 'message' => 'User has made no progress on the selected course.',
100 ];
101 }
102
103 foreach ( $user_progresses as $user_progress ) {
104 $user_progress->destroy();
105 }
106
107 return [
108 'user_email' => $selected_options['wp_user_email'],
109 'course_id' => $course_id,
110 'course_title' => get_the_title( $course_id ),
111 'course_url' => get_permalink( $course_id ),
112 'course_featured_image_id' => get_post_meta( $course_id, '_thumbnail_id', true ),
113 'course_featured_image_url' => get_the_post_thumbnail_url( $course_id ),
114 ];
115 }
116
117
118 }
119
120 ResetCourseProgress::get_instance();
121