PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / essay-question-graded.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
essay-question-graded.php
133 lines
1 <?php
2 /**
3 * EssayQuestionGraded.
4 * php version 5.6
5 *
6 * @category EssayQuestionGraded
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\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19
20 if ( ! class_exists( 'EssayQuestionGraded' ) ) :
21
22
23 /**
24 * EssayQuestionGraded
25 *
26 * @category EssayQuestionGraded
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 */
33 class EssayQuestionGraded {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'LearnDash';
42
43 /**
44 * Action name.
45 *
46 * @var string
47 */
48 public $trigger = 'essay_question_graded';
49
50 use SingletonLoader;
51
52
53 /**
54 * Constructor
55 *
56 * @since 1.0.0
57 */
58 public function __construct() {
59 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
60 }
61
62 /**
63 * Register a action.
64 *
65 * @param array $triggers actions.
66 * @return array
67 */
68 public function register( $triggers ) {
69
70 $triggers[ $this->integration ][ $this->trigger ] = [
71 'label' => __( 'User Added in Group', 'suretriggers' ),
72 'action' => 'essay_question_graded',
73 'common_action' => 'learndash_essay_response_data_updated',
74 'function' => [ $this, 'trigger_listener' ],
75 'priority' => 10,
76 'accepted_args' => 4,
77 ];
78
79 return $triggers;
80
81 }
82
83 /**
84 * Trigger listener
85 *
86 * @param int $quiz_id Quiz ID.
87 * @param int $question_id Question ID.
88 * @param object $essay Essay.
89 * @param array $submitted_essay Submitted Essay.
90 * @since 1.0.0
91 *
92 * @return void
93 */
94 public function trigger_listener( $quiz_id, $question_id, $essay, $submitted_essay ) {
95 // Ensure it's an essay and graded.
96 if ( ! is_a( $essay, 'WP_Post' ) || 'sfwd-essays' !== $essay->post_type ||
97 'graded' !== $essay->post_status ) {
98 return;
99 }
100
101 $essay_id = $essay->ID;
102 $course_id = get_post_meta( $essay->ID, 'course_id', true );
103 $step_id = get_post_meta( $essay->ID, 'lesson_id', true );
104 $quiz_post_id = get_post_meta( $essay->ID, 'quiz_post_id', true );
105 $question_post_id = get_post_meta( $essay->ID, 'question_post_id', true );
106
107 $context = WordPress::get_user_context( (int) $essay->post_author );
108
109 $context['quiz_name'] = is_int( $quiz_post_id ) ? (int) get_the_title( $quiz_post_id ) : null;
110 $context['sfwd_quiz_id'] = $quiz_post_id;
111 $context['course_name'] = is_int( $course_id ) ? (int) get_the_title( $course_id ) : null;
112 $context['course_id'] = $course_id;
113 $context['lesson_name'] = is_int( $step_id ) ? (int) get_the_title( $step_id ) : null;
114 $context['lesson_id'] = $step_id;
115 $context['sfwd_question_id'] = $question_post_id;
116 $context['question_name'] = is_int( $question_post_id ) ? (int) get_the_title( $question_post_id ) : null;
117 $context['essay_id'] = $essay_id;
118 $context['essay'] = WordPress::get_post_context( $essay_id );
119 $context['essay_points_earned'] = (int) $submitted_essay['points_awarded'];
120
121 AutomationController::sure_trigger_handle_trigger(
122 [
123 'trigger' => $this->trigger,
124 'context' => $context,
125 ]
126 );
127 }
128 }
129
130 EssayQuestionGraded::get_instance();
131
132 endif;
133