File "class-modules.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/orderable/inc/class-modules.php
File size: 1.35 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Module methods.
*
* Load individual modules of Orderable plugin, if they exist.
*
* @package Orderable/Classes
*/
defined( 'ABSPATH' ) || exit;
/**
* Modules class.
*/
class Orderable_Modules {
/**
* Init.
*/
public static function run() {
self::load_modules();
}
/**
* Load free modules.
*/
private static function load_modules() {
$modules = array(
'layouts',
'drawer',
'services',
'timings',
'addons',
'live-view',
'location',
'tip',
'checkout',
'timed-products',
'custom-order-status',
'notifications',
'order-reminders',
'table-ordering',
'product-labels',
'receipt-layouts',
);
foreach ( $modules as $module ) {
$path = ORDERABLE_MODULES_PATH . $module . '/class-' . $module . '.php';
if ( ! file_exists( $path ) ) {
continue;
}
$class_name = self::get_module_class_name( $module );
require_once $path;
if ( ! class_exists( $class_name ) ) {
continue;
}
$class_name::run();
}
}
/**
* Get module class name.
*
* @param string $module Module name.
*
* @return string
*/
public static function get_module_class_name( $module ) {
$module = ucwords( str_replace( '-', ' ', $module ) );
$module = str_replace( ' ', '_', $module );
return apply_filters( 'orderable_get_module_class_name', 'Orderable_' . $module, $module );
}
}