class-learndash-admin-bulk-edit-actions.php
3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
/**
* LearnDash Bulk Edit Actions class.
*
* @since 4.2.0
*
* @package LearnDash\Bulk_Edit
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'Learndash_Admin_Bulk_Edit_Actions' ) ) {
/**
* Learndash Bulk Edit Actions class.
*
* @since 4.2.0
*/
class Learndash_Admin_Bulk_Edit_Actions {
const BULK_EDIT_ACTION_SCHEDULER_GROUP = 'bulk-edit';
/**
* Array of Bulk edit classes instances.
*
* @since 4.2.0
*
* @var Learndash_Admin_Bulk_Edit_Action[]
*/
private static $bulk_classes = array();
/**
* Inits the bulk edit classes.
*
* @since 4.2.0
*
* @return void
*/
public static function init_classes(): void {
// Include dependencies.
self::include_dependencies();
$bulk_classes = array(
array(
'file_path' => 'class-learndash-admin-bulk-edit-action-courses.php',
'class_name' => Learndash_Admin_Bulk_Edit_Action_Courses::class,
'dependencies' => array(
new LearnDash_Settings_Metabox_Course_Access_Settings(),
),
),
array(
'file_path' => 'class-learndash-admin-bulk-edit-action-groups.php',
'class_name' => Learndash_Admin_Bulk_Edit_Action_Groups::class,
'dependencies' => array(
new LearnDash_Settings_Metabox_Group_Access_Settings(),
),
),
array(
'file_path' => 'class-learndash-admin-bulk-edit-action-lessons.php',
'class_name' => Learndash_Admin_Bulk_Edit_Action_Lessons::class,
'dependencies' => array(
new LearnDash_Settings_Metabox_Lesson_Display_Content(),
),
),
);
$folder_path = LEARNDASH_LMS_PLUGIN_DIR . 'includes/admin/classes-bulk-edit-actions/';
foreach ( $bulk_classes as $class ) {
require_once $folder_path . $class['file_path'];
self::$bulk_classes[ $class['class_name'] ] = new $class['class_name']( ...$class['dependencies'] );
}
/**
* Filters bulk edit classes.
*
* @since 4.2.0
*
* @param array $bulk_classes Bulk Edit Classes.
*/
self::$bulk_classes = apply_filters( 'learndash_bulk_edit_classes', self::$bulk_classes );
self::$bulk_classes = array_filter(
self::$bulk_classes,
function( $bulk_class ) {
return $bulk_class instanceof Learndash_Admin_Bulk_Edit_Action;
}
);
// creating the scheduler instance.
$bulk_edit_scheduler = new Learndash_Admin_Action_Scheduler( self::BULK_EDIT_ACTION_SCHEDULER_GROUP );
foreach ( self::$bulk_classes as $class ) {
$class->init( $bulk_edit_scheduler );
}
}
/**
* Returns registered classes.
*
* @since 4.2.0
*
* @return Learndash_Admin_Bulk_Edit_Action[]
*/
public static function get_classes(): array {
return self::$bulk_classes;
}
/**
* Includes dependencies.
*
* @since 4.2.0
*
* @return void
*/
private static function include_dependencies(): void {
Learndash_Admin_Filters::include_classes();
require_once LEARNDASH_LMS_PLUGIN_DIR . 'includes/admin/classes-bulk-edit-actions/class-learndash-admin-bulk-edit-action.php';
require_once LEARNDASH_LMS_PLUGIN_DIR . 'includes/admin/classes-bulk-edit-actions/class-learndash-admin-bulk-edit-field.php';
require_once LEARNDASH_LMS_PLUGIN_DIR . 'includes/settings/settings-metaboxes/class-ld-settings-metabox-course-access-settings.php';
require_once LEARNDASH_LMS_PLUGIN_DIR . 'includes/settings/settings-metaboxes/class-ld-settings-metabox-group-access-settings.php';
require_once LEARNDASH_LMS_PLUGIN_DIR . 'includes/settings/settings-metaboxes/class-ld-settings-metabox-lesson-display-content.php';
}
}
}