uery::class, ShippingRateTable::class );
$this->share_table_class( ShippingTimeTable::class );
$this->add_query_class( ShippingTimeQuery::class, ShippingTimeTable::class );
$this->share_table_class( MerchantIssueTable::class );
$this->add_query_class( MerchantIssueQuery::class, MerchantIssueTable::class );
$this->share_with_tags( ProductFeedQueryHelper::class, wpdb::class, ProductRepository::class );
$this->share_with_tags( ProductMetaQueryHelper::class, wpdb::class );
// Share DB migrations
$this->share_migration( MigrationVersion141::class, MerchantIssueTable::class );
$this->share_migration( Migration20211228T1640692399::class, ShippingRateTable::class, OptionsInterface::class );
$this->share_with_tags( Migration20220524T1653383133::class, BudgetRecommendationTable::class );
$this->share_migration( Migration20231109T1653383133::class, BudgetRecommendationTable::class );
$this->share_with_tags( Migrator::class, MigrationInterface::class );
}
/**
* Add a query class.
*
* @param string $class_name
* @param mixed ...$arguments
*
* @return DefinitionInterface
*/
protected function add_query_class( string $class_name, ...$arguments ): DefinitionInterface {
return $this->add( $class_name, wpdb::class, ...$arguments )->addTag( 'db_query' );
}
/**
* Share a table class.
*
* Shared classes will always return the same instance of the class when the class is requested
* from the container.
*
* @param string $class_name The class name to add.
* @param mixed ...$arguments Constructor arguments for the class.
*
* @return DefinitionInterface
*/
protected function share_table_class( string $class_name, ...$arguments ): DefinitionInterface {
return parent::share( $class_name, WP::class, wpdb::class, ...$arguments )->addTag( 'db_table' );
}
/**
* Share a migration class.
*
* @param string $class_name The class name to add.
* @param mixed ...$arguments Constructor arguments for the class.
*
* @throws InvalidClass When the given class does not implement the MigrationInterface.
*
* @since 1.4.1
*/
protected function share_migration( string $class_name, ...$arguments ) {
$this->validate_interface( $class_name, MigrationInterface::class );
$this->share_with_tags(
$class_name,
wpdb::class,
...$arguments
);
}
}
Fatal error: Uncaught Automattic\WooCommerce\GoogleListingsAndAds\Vendor\League\Container\Exception\ContainerException: A service provider must be a fully qualified class name or instance of (\League\Container\ServiceProvider\ServiceProviderInterface) in /htdocs/wp-content/plugins/google-listings-and-ads/vendor/league/container/src/ServiceProvider/ServiceProviderAggregate.php:52
Stack trace:
#0 /htdocs/wp-content/plugins/google-listings-and-ads/vendor/league/container/src/Container.php(146): Automattic\WooCommerce\GoogleListingsAndAds\Vendor\League\Container\ServiceProvider\ServiceProviderAggregate->add('Automattic\\WooC...')
#1 /htdocs/wp-content/plugins/google-listings-and-ads/src/Container.php(75): Automattic\WooCommerce\GoogleListingsAndAds\Vendor\League\Container\Container->addServiceProvider('Automattic\\WooC...')
#2 /htdocs/wp-content/plugins/google-listings-and-ads/google-listings-and-ads.php(93): Automattic\WooCommerce\GoogleListingsAndAds\Container->__construct()
#3 /htdocs/wp-content/plugins/google-listings-and-ads/src/PluginFactory.php(25): woogle_get_container()
#4 /htdocs/wp-content/plugins/google-listings-and-ads/google-listings-and-ads.php(72): Automattic\WooCommerce\GoogleListingsAndAds\PluginFactory::instance()
#5 /htdocs/wp-includes/class-wp-hook.php(324): {closure}('')
#6 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array)
#7 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#8 /htdocs/wp-content/plugins/woocommerce/includes/class-woocommerce.php(218): do_action('woocommerce_loa...')
#9 /htdocs/wp-includes/class-wp-hook.php(324): WooCommerce->on_plugins_loaded('')
#10 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)
#11 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#12 /htdocs/wp-settings.php(559): do_action('plugins_loaded')
#13 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...')
#14 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...')
#15 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...')
#16 /htdocs/index.php(17): require('/htdocs/wp-blog...')
#17 {main}
thrown in /htdocs/wp-content/plugins/google-listings-and-ads/vendor/league/container/src/ServiceProvider/ServiceProviderAggregate.php on line 52