- Sidebar-Menü „Bestellungen" in „Versand" umbenannt (layout-sidenav), sonst nur Blade-Formatierung. - Entwicklungspläne in ISO-Datumsformat umbenannt (entwicklungsplan-aktualisiert-*). - dev/dhl-for-woocommerce/ (DHL-Plugin) + dev/partnercenter-api.zip + PastedGraphic hinzugefügt. - .claude/ bewusst NICHT eingecheckt (lokale Claude-Code-Konfiguration). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
81 lines
1.7 KiB
PHP
81 lines
1.7 KiB
PHP
<?php
|
|
|
|
if (! defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
class PR_DHL_Autoloader
|
|
{
|
|
/**
|
|
* Path to the includes directory.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $include_path = '';
|
|
|
|
/**
|
|
* The Constructor.
|
|
*/
|
|
public function __construct()
|
|
{
|
|
|
|
spl_autoload_register([$this, 'autoload']);
|
|
|
|
$this->include_path = untrailingslashit(plugin_dir_path(PR_DHL_PLUGIN_FILE)).'/includes/';
|
|
}
|
|
|
|
/**
|
|
* Take a class name and turn it into a file name.
|
|
*
|
|
* @param string $class
|
|
* @return string
|
|
*/
|
|
private function get_file_name_from_class($class)
|
|
{
|
|
return 'class-'.str_replace('_', '-', $class).'.php';
|
|
}
|
|
|
|
/**
|
|
* Include a class file.
|
|
*
|
|
* @param string $path
|
|
* @return bool successful or not
|
|
*/
|
|
private function load_file($path)
|
|
{
|
|
if ($path && is_readable($path)) {
|
|
include_once $path;
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Auto-load WC classes on demand to reduce memory consumption.
|
|
*
|
|
* @param string $class
|
|
*/
|
|
public function autoload($class)
|
|
{
|
|
$class = strtolower($class);
|
|
$file = $this->get_file_name_from_class($class);
|
|
$path = '';
|
|
|
|
if (strpos($class, 'pr_dhl_api') === 0) {
|
|
$path = $this->include_path.'pr-dhl-api/';
|
|
}
|
|
|
|
if (strpos($class, 'front_end') !== false) {
|
|
$path = $this->include_path.'front-end/';
|
|
}
|
|
|
|
// If the path is empty -> not DHL API class, or class couldn't load, try parent dir load
|
|
if (empty($path) || ! $this->load_file($path.$file)) {
|
|
$this->load_file($this->include_path.$file);
|
|
}
|
|
}
|
|
}
|
|
|
|
new PR_DHL_Autoloader;
|