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 / learndash / triggers / user-fails-quiz.php
suretriggers / src / Integrations / learndash / triggers Last commit date
course-added-to-group.php 1 year ago essay-question-graded.php 2 years ago group-leader-added-to-group.php 1 year ago group-leader-removed-from-group.php 1 year ago user-access-course-expires.php 2 years ago user-added-in-group.php 1 year ago user-assignment-graded.php 2 years ago user-completes-course.php 1 year ago user-completes-group-course.php 1 year ago user-completes-lesson.php 3 years ago user-completes-topic.php 3 years ago user-enrolled-course.php 1 year ago user-fails-quiz.php 2 years ago user-passes-quiz.php 2 years ago user-purchase-course.php 1 year ago user-removed-from-group.php 1 year ago user-submits-assignment.php 2 years ago user-submits-essay-quiz.php 2 years ago user-unenrolled-course.php 2 years ago
user-fails-quiz.php
144 lines
1 <?php
2 /**
3 * UserFailsLDQuiz.
4 * php version 5.6
5 *
6 * @category UserFailsLDQuiz
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\LearnDash\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\LearnDash\LearnDash;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 if ( ! class_exists( 'UserFailsLDQuiz' ) ) :
22
23
24 /**
25 * UserFailsLDQuiz
26 *
27 * @category UserFailsLDQuiz
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 UserFailsLDQuiz {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'LearnDash';
43
44 /**
45 * Action name.
46 *
47 * @var string
48 */
49 public $trigger = 'user_fails_ld_quiz';
50
51 use SingletonLoader;
52
53
54 /**
55 * Constructor
56 *
57 * @since 1.0.0
58 */
59 public function __construct() {
60 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
61 }
62
63 /**
64 * Register a action.
65 *
66 * @param array $triggers actions.
67 * @return array
68 */
69 public function register( $triggers ) {
70
71 $triggers[ $this->integration ][ $this->trigger ] = [
72 'label' => __( 'User Fails Quiz', 'suretriggers' ),
73 'action' => 'user_passes_ld_quiz',
74 'common_action' => [ 'learndash_quiz_submitted', 'learndash_essay_quiz_data_updated' ],
75 'function' => [ $this, 'trigger_listener' ],
76 'priority' => 10,
77 'accepted_args' => 4,
78 ];
79
80 return $triggers;
81
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param array $data quiz data.
88 * @param object $current_user current user.
89 * @since 1.0.0
90 *
91 * @return void
92 */
93 public function trigger_listener( $data, $current_user ) {
94
95 if ( empty( $data ) ) {
96 return;
97 }
98
99 $passed = $data['pass'];
100 if ( $passed ) {
101 return;
102 }
103
104 // Check if grading is enabled.
105 $has_graded = isset( $data['has_graded'] ) ? absint( $data['has_graded'] ) : 0;
106 $has_graded = ! empty( $has_graded );
107 $graded = $has_graded && isset( $data['graded'] ) ? $data['graded'] : false;
108
109 if ( $has_graded ) {
110 if ( ! empty( $graded ) ) {
111 foreach ( $graded as $grade_item ) {
112 // Quiz has not been graded yet.
113 if ( isset( $grade_item['status'] ) && 'not_graded' === $grade_item['status'] ) {
114 return;
115 }
116 }
117 }
118 }
119
120 $output_questions = LearnDash::get_quiz_questions_answers( $data['quiz'] );
121 if ( property_exists( $current_user, 'ID' ) ) {
122 $current_user = $current_user->ID;
123 }
124 $context = array_merge(
125 WordPress::get_user_context( $current_user ),
126 $output_questions,
127 $data
128 );
129
130 $context['quiz_name'] = get_the_title( $data['quiz'] );
131 $context['sfwd_quiz_id'] = $data['quiz'];
132 AutomationController::sure_trigger_handle_trigger(
133 [
134 'trigger' => $this->trigger,
135 'context' => $context,
136 ]
137 );
138 }
139 }
140
141 UserFailsLDQuiz::get_instance();
142
143 endif;
144