define( 'WC_ADMIN_IMAGES_FOLDER_URL', plugins_url( 'assets/images', WC_PLUGIN_FILE ) ); } /** * Define the current WC Admin version. * * @deprecated 6.4.0 * @var string */ if ( ! defined( 'WC_ADMIN_VERSION_NUMBER' ) ) { /** * Define the current WC Admin version. * * @deprecated 6.4.0 * @var string */ define( 'WC_ADMIN_VERSION_NUMBER', '3.3.0' ); } } /** * Include WC Admin classes. */ public function includes() { // Initialize Database updates, option migrations, and Notes. Events::instance()->init(); Notes::init(); // Initialize Plugins Installer. PluginsInstaller::init(); PluginsHelper::init(); // Initialize API. API\Init::instance(); if ( Features::is_enabled( 'onboarding' ) ) { Onboarding::init(); } if ( Features::is_enabled( 'analytics' ) ) { // Initialize Reports syncing. ReportsSync::init(); CategoryLookup::instance()->init(); // Initialize Reports exporter. ReportExporter::init(); } // Admin note providers. // @todo These should be bundled in the features/ folder, but loading them from there currently has a load order issue. new WooSubscriptionsNotes(); new OrderMilestones(); new TrackingOptIn(); new WooCommercePayments(); new InstallJPAndWCSPlugins(); new SellingOnlineCourses(); new MagentoMigration(); // Initialize MerchantEmailNotifications. MerchantEmailNotifications::init(); } /** * Set up our admin hooks and plugin loader. */ protected function hooks() { add_filter( 'woocommerce_admin_features', array( $this, 'replace_supported_features' ), 0 ); Loader::get_instance(); WCAdminAssets::get_instance(); } /** * Overwrites the allowed features array using a local `feature-config.php` file. * * @param array $features Array of feature slugs. */ public function replace_supported_features( $features ) { /** * Get additional feature config * * @since 6.5.0 */ $feature_config = apply_filters( 'woocommerce_admin_get_feature_config', wc_admin_get_feature_config() ); $features = array_keys( array_filter( $feature_config ) ); return $features; } /** * Define constant if not already set. * * @param string $name Constant name. * @param string|bool $value Constant value. */ protected function define( $name, $value ) { if ( ! defined( $name ) ) { define( $name, $value ); } } /** * Prevent cloning. */ private function __clone() {} /** * Prevent unserializing. */ public function __wakeup() { die(); } }
Fatal error: Uncaught Error: Class "Automattic\WooCommerce\Internal\Admin\FeaturePlugin" not found in /htdocs/wp-content/plugins/woocommerce/src/Admin/Composer/Package.php:56 Stack trace: #0 [internal function]: Automattic\WooCommerce\Admin\Composer\Package::init() #1 /htdocs/wp-content/plugins/woocommerce/src/Packages.php(128): call_user_func(Array) #2 /htdocs/wp-content/plugins/woocommerce/src/Packages.php(64): Automattic\WooCommerce\Packages::initialize_packages() #3 /htdocs/wp-includes/class-wp-hook.php(324): Automattic\WooCommerce\Packages::on_init('') #4 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #5 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #6 /htdocs/wp-settings.php(559): do_action('plugins_loaded') #7 /htdocs/wp-config.php(106): require_once('/htdocs/wp-sett...') #8 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #9 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #10 /htdocs/index.php(17): require('/htdocs/wp-blog...') #11 {main} thrown in /htdocs/wp-content/plugins/woocommerce/src/Admin/Composer/Package.php on line 56