data['courseId'] ?? null; $user_id = $this->data['userId'] ?? null; $course = acadlix()->model()->course()->find($course_id); $user = acadlix()->model()->wpUsers()->find($user_id); if (!$course || !$user) { return [ 'subject' => '', 'template' => '', ]; } $course_completion_percentage = $course->getCourseCompletionPercentage($user_id) ?? 0; if ($course_completion_percentage != 100) { return [ 'subject' => '', 'template' => '', ]; } $certificate = acadlix() ->model() ->userActivityMeta() ->ofCertificate() ->where('user_id', $user_id) ->where('type_id', $course_id) ->first(); $certificate_url = ''; if ($certificate) { $certificate_url = add_query_arg('certificate_id', $certificate->reference_id, get_permalink(acadlix()->helper()->acadlix_get_option('acadlix_certificate_page_id'))); } $r = [ 'username' => $user->display_name ?? '', 'coursename' => $course->post_title ?? '', 'date' => acadlix()->helper()->formatDate(current_time('mysql')), 'year' => wp_date('Y'), 'sitename' => get_bloginfo('name'), ]; $enable_certificate = $course->rendered_metas['enable_certificate'] ?? false; if ($enable_certificate && $certificate_url) { $r['certificate_url'] = $certificate_url; } $subject = sprintf( /* translators: 1: username 2: coursename */ __(' %1$s has completed %2$s', 'acadlix'), $r['username'], $r['coursename'] ); $template = acadlix()->helper()->acadlix_get_email_template( 'CourseCompletion.php', 'admin', $r ); return [ 'subject' => $subject, 'template' => $template, ]; } public function student(): array { $course_id = $this->data['courseId'] ?? null; $user_id = $this->data['userId'] ?? null; $course = acadlix()->model()->course()->find($course_id); $user = acadlix()->model()->wpUsers()->find($user_id); if (!$course || !$user) { return [ 'email' => '', 'subject' => '', 'template' => '', ]; } $course_completion_percentage = $course->getCourseCompletionPercentage($user_id) ?? 0; if ($course_completion_percentage != 100) { return [ 'email' => '', 'subject' => '', 'template' => '', ]; } $certificate = acadlix() ->model() ->userActivityMeta() ->ofCertificate() ->where('user_id', $user_id) ->where('type_id', $course_id) ->first(); $certificate_url = ''; if ($certificate) { $certificate_url = add_query_arg('certificate_id', $certificate->reference_id, get_permalink(acadlix()->helper()->acadlix_get_option('acadlix_certificate_page_id'))); } $r = [ 'username' => $user->display_name ?? '', 'coursename' => $course->post_title ?? '', 'date' => acadlix()->helper()->formatDate(current_time('mysql')), 'year' => wp_date('Y'), 'sitename' => get_bloginfo('name'), ]; $enable_certificate = $course->rendered_metas['enable_certificate'] ?? false; if ($enable_certificate && $certificate_url) { $r['certificate_url'] = $certificate_url; } $subject = sprintf( /* translators: 1: coursename */ __('You have completed %s!', 'acadlix'), $r['coursename'] ); $template = acadlix()->helper()->acadlix_get_email_template( 'CourseCompletion.php', 'student', $r ); return [ 'email' => $user->user_email ?? '', 'subject' => $subject, 'template' => $template, ]; } }