<?php declare( strict_types=1 ); namespace WPDesk\Init\HookDriver; use Psr\Container\ContainerInterface; use WPDesk\Init\Configuration\ReadableConfig; use WPDesk\Init\Plugin; class LegacyHookableDriver implements HookDriver { public function register_hooks( ReadableConfig $config, array $bundles, ContainerInterface $container ): void { $info = $this->as_plugin_info($container->get(Plugin::class), $config); $class_name = apply_filters_deprecated( 'wp_builder_plugin_class', $info->get_class_name(), '1.0.0', '', 'This hook should not be used.' ); $p = new $class_name($info); add_action('plugins_loaded', [$p, 'init'], -45); } private function as_plugin_info( Plugin $plugin, ReadableConfig $config ) { global $plugin_class_name; $plugin_info = new \WPDesk_Plugin_Info(); $plugin_info->set_plugin_file_name($plugin->get_basename()); $plugin_info->set_plugin_name($plugin->get_name()); $plugin_info->set_plugin_dir($plugin->get_path()); $plugin_info->set_version( $plugin->get_version() ); $plugin_info->set_text_domain( $plugin->get_slug() ); $plugin_info->set_plugin_url($plugin->get_url()); $plugin_info->set_class_name($config->get('plugin_class_name', $plugin_class_name)); // $plugin_info->set_product_id( $this->product_id ); // $plugin_info->set_plugin_shops( $this->plugin_shops ); return $plugin_info; } }