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 / memberpress-course / memberpress-course.php
suretriggers / src / Integrations / memberpress-course Last commit date
actions 3 months ago triggers 3 years ago memberpress-course.php 3 months ago
memberpress-course.php
117 lines
1 <?php
2 /**
3 * MemberPress course integrations file
4 *
5 * @since 1.0.0
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\MemberPressCourse;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14 use memberpress\courses\lib as lib;
15 use memberpress\courses as base;
16 use memberpress\courses\models as models;
17
18
19 /**
20 * Class SureTrigger
21 *
22 * @package SureTriggers\Integrations\MemberPressCourse
23 */
24 class MemberPressCourse extends Integrations {
25
26
27 use SingletonLoader;
28
29 /**
30 * ID
31 *
32 * @var string
33 */
34 protected $id = 'MemberPressCourse';
35
36 /**
37 * SureTrigger constructor.
38 */
39 public function __construct() {
40 $this->name = __( 'MemberPressCourse', 'suretriggers' );
41 $this->description = __( 'Easily Create And Sell Online Courses On Your WP Site With MemberPressCourse.', 'suretriggers' );
42 $this->icon_url = SURE_TRIGGERS_URL . 'assets/icons/memberpresscourse.png';
43
44 parent::__construct();
45 }
46
47 /**
48 * Is Plugin depended on plugin is installed or not.
49 *
50 * @return bool
51 */
52 public function is_plugin_installed() {
53 if ( in_array( 'memberpress-courses/main.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) && class_exists( 'MeprCtrlFactory' ) ) {
54 return true;
55 } else {
56
57 // Plugin is not active or installed.
58 return false;
59 }
60 }
61
62 /**
63 * Find lessons.
64 *
65 * @param int $section_id section id.
66 *
67 * @return mixed
68 */
69 public static function find_all_by_section( $section_id ) {
70 if ( ! class_exists( '\memberpress\courses\models\Lesson' ) ) {
71 return;
72 }
73 global $wpdb;
74 $post_types = models\Lesson::lesson_cpts();
75
76 $prepare_args = [
77 models\Lesson::$section_id_str,
78 $section_id,
79 models\Lesson::$lesson_order_str,
80 ];
81 $prepare_args = array_merge( $prepare_args, $post_types );
82
83 $query = $wpdb->prepare(
84 "SELECT ID, post_type FROM {$wpdb->posts} AS p
85 JOIN {$wpdb->postmeta} AS pm
86 ON p.ID = pm.post_id
87 AND pm.meta_key = %s
88 AND pm.meta_value = %s
89 JOIN {$wpdb->postmeta} AS pm_order
90 ON p.ID = pm_order.post_id
91 AND pm_order.meta_key = %s
92 WHERE p.post_type IN ( " . implode( ',', array_fill( 0, count( $post_types ), '%s' ) ) . " ) AND p.post_status <> 'trash'
93 ORDER BY pm_order.meta_value * 1",
94 $prepare_args
95 );
96
97 $db_lessons = $wpdb->get_results( $query ); //phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
98 $lessons = [];
99
100 foreach ( $db_lessons as $lesson ) {
101 if ( ! class_exists( '\memberpress\courses\models\Quiz' ) ) {
102 return;
103 }
104 if ( models\Quiz::$cpt === $lesson->post_type ) {
105 $lessons[] = $lesson->ID;
106 } else {
107 $lessons[] = $lesson->ID;
108 }
109 }
110
111 return $lessons;
112 }
113
114 }
115
116 IntegrationsController::register( MemberPressCourse::class );
117