woocommerce-paypal-payments/inc/autoload.php

49 lines
1.3 KiB
PHP
Raw Normal View History

2020-08-31 12:37:24 +03:00
<?php
declare( strict_types=1 );
namespace Inpsyde\PayPalCommerce;
function autoload() {
/**
* Custom WordPress autoloader.
*/
spl_autoload_register(
function( $class_name ) {
if (
strpos($class_name, 'Inpsyde\PayPalCommerce') === false
&& strpos($class_name, 'Inpsyde\Woocommerce') === false
) {
return;
}
$class_parts = explode("\\", $class_name);
$module_dir = dirname(__DIR__) . '/modules.local/';
$modules = [
'Button' => $module_dir . 'ppcp-button/src/',
'Onboarding' => $module_dir . 'ppcp-onboarding/src/',
'Subscription' => $module_dir . 'ppcp-subscription/src/',
'WcGateway' => $module_dir . 'ppcp-wc-gateway/src/',
'Webhooks' => $module_dir . 'ppcp-webhooks/src/',
'Logging' => $module_dir . 'woocommerce-logging/src/',
];
if (! isset($modules[$class_parts[2]])) {
return;
}
$file_path = $modules[$class_parts[2]];
unset ($class_parts[0]);
unset ($class_parts[1]);
unset ($class_parts[2]);
$file_name = 'class-' . strtolower(end($class_parts)) . '.php';
array_pop($class_parts);
$file_path .= implode(DIRECTORY_SEPARATOR, $class_parts) . '/' . $file_name;
include $file_path;
}
);
// Load composer autoloader.
include dirname(__DIR__) . '/vendor/autoload.php';
}