Completed
Push — 192-feature/delete-posts-by-UR... ( d77c1d...2a33ec )
by Sudar
127:00 queued 124:02
created

bd_get_custom_class_map()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 17
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 16
c 2
b 0
f 0
nc 1
nop 1
dl 0
loc 17
rs 9.4285
1
<?php
2
/**
3
 * Load Bulk Delete plugin.
4
 *
5
 * We need this load code in a separate file since it requires namespace
6
 * and using namespace in PHP 5.2 will generate a fatal error.
7
 *
8
 * @since 6.0.0
9
 */
10
use BulkWP\BulkDelete\BulkDeleteAutoloader;
11
use BulkWP\BulkDelete\Core\BulkDelete;
12
13
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
14
15
/**
16
 * Load Bulk Delete plugin.
17
 *
18
 * @since 6.0.0
19
 *
20
 * @param string $plugin_file Main plugin file.
21
 */
22
function bulk_delete_load( $plugin_file ) {
23
	$plugin_dir = plugin_dir_path( $plugin_file );
24
25
	// setup autoloader.
26
	require_once 'include/BulkDeleteAutoloader.php';
27
28
	$loader = new BulkDeleteAutoloader();
29
	$loader->set_custom_mapping( bd_get_custom_class_map( $plugin_dir ) );
30
31
	$loader->add_namespace( 'BulkWP\\BulkDelete\\', $plugin_dir . 'include' );
32
33
	$custom_include_files = bd_get_custom_include_files();
34
	foreach ( $custom_include_files as $custom_include_file ) {
35
		$loader->add_file( $plugin_dir . $custom_include_file );
36
	}
37
38
	$loader->register();
39
40
	$plugin = BulkDelete::get_instance();
41
	$plugin->set_plugin_file( $plugin_file );
42
	$plugin->set_loader( $loader );
43
44
	add_action( 'plugins_loaded', array( $plugin, 'load' ), 101 );
45
}
46
47
/**
48
 * Get class map of legacy classes.
49
 *
50
 * These classes don't have namespace and so can't be autoloaded automatically.
51
 * This function would be eventually removed once all the classes are loaded.
52
 *
53
 * @since 6.0.0
54
 *
55
 * @param string $plugin_dir Path to plugin directory.
56
 *
57
 * @return array Class map.
58
 */
59
function bd_get_custom_class_map( $plugin_dir ) {
60
	return array(
61
		'BD_User_Meta_Box_Module'                  => $plugin_dir . 'include/base/users/class-bd-user-meta-box-module.php',
62
		'BD_Meta_Box_Module'                       => $plugin_dir . 'include/base/class-bd-meta-box-module.php',
63
		'BD_Base_Page'                             => $plugin_dir . 'include/base/class-bd-base-page.php',
64
		'BD_Page'                                  => $plugin_dir . 'include/base/class-bd-page.php',
65
		'BD_License'                               => $plugin_dir . 'include/license/class-bd-license.php',
66
		'BD_License_Handler'                       => $plugin_dir . 'include/license/class-bd-license-handler.php',
67
		'BD_EDD_API_Wrapper'                       => $plugin_dir . 'include/license/class-bd-edd-api-wrapper.php',
68
		'BD_Users_Page'                            => $plugin_dir . 'include/users/class-bd-users-page.php',
69
		'Bulk_Delete_Users_By_User_Role'           => $plugin_dir . 'include/users/modules/class-bulk-delete-users-by-user-role.php',
70
		'Bulk_Delete_Users_By_User_Meta'           => $plugin_dir . 'include/users/modules/class-bulk-delete-users-by-user-meta.php',
71
		'Bulk_Delete_Misc'                         => $plugin_dir . 'include/misc/class-bulk-delete-misc.php',
72
		'Bulk_Delete_Jetpack_Contact_Form_Message' => $plugin_dir . 'include/misc/class-bulk-delete-jetpack-contact-form-messages.php',
73
		'BD_Settings_Page'                         => $plugin_dir . 'include/settings/class-bd-settings-page.php',
74
		'BD_Settings'                              => $plugin_dir . 'include/settings/class-bd-settings.php',
75
		'BD_System_Info_page'                      => $plugin_dir . 'include/system-info/class-bd-system-info-page.php',
76
	);
77
}
78
79
/**
80
 * Get the list of custom included files.
81
 *
82
 * These files will be autoloaded using the autoloader.
83
 *
84
 * @since 6.0.0
85
 *
86
 * @return array List of files.
87
 */
88
function bd_get_custom_include_files() {
89
	return array(
90
		'include/addons/addon-list.php',
91
		'include/addons/pages.php',
92
		'include/addons/posts.php',
93
		'include/addons/util.php',
94
		'include/compatibility/simple-login-log.php',
95
		'include/compatibility/the-event-calendar.php',
96
		'include/compatibility/woocommerce.php',
97
		'include/compatibility/advanced-custom-fields-pro.php',
98
		'include/helpers/common.php',
99
		'include/ui/form.php',
100
		'include/ui/admin-ui.php',
101
		'include/util/query.php',
102
		'include/settings/setting-helpers.php',
103
	);
104
}
105