plugin, $boxzilla); }; $boxzilla['admin.menu'] = function () { return new Menu(); }; $boxzilla['box_loader'] = function ($boxzilla) { return new BoxLoader($boxzilla->plugin, $boxzilla->options); }; $boxzilla['filter.autocomplete'] = function () { return new Filter\Autocomplete(); }; $boxzilla['notices'] = function () { return new Notices(); }; $boxzilla['options'] = function () { $defaults = [ 'test_mode' => 0, ]; $options = (array) get_option('boxzilla_settings', $defaults); $options = array_merge($defaults, $options); return $options; }; $boxzilla['plugin'] = new Plugin( 'boxzilla', 'Boxzilla', BOXZILLA_VERSION, BOXZILLA_FILE, dirname(BOXZILLA_FILE) ); $boxzilla['plugins'] = function () { $raw = (array) apply_filters('boxzilla_extensions', []); $plugins = []; foreach ($raw as $p) { $plugins[ $p->id() ] = $p; } return $plugins; };