return \true; } } return \false; } /** * Check if cross-selling is deactivated through a given Edge case. E. g. * do not show any cross-sellings when "Real Cookie Banner" is the only plugin active. */ public function isDeactivatedThroughEdgeCase() { $our = $this->getOurPluginsInstalled(); $rcb = 'real-cookie-banner'; $foundNonRcb = \false; foreach ($our as $file) { if (\substr($file, 0, \strlen($rcb)) !== $rcb) { $foundNonRcb = \true; } } return !$foundNonRcb; } /** * Get an array of our installed plugins. */ public function getOurPluginsInstalled() { $result = []; foreach (self::ALL_VERSIONS as $file) { if ($this->isInstalled($file)) { $result[] = $file; } } return $result; } /** * Localize frontend only when needed. */ public function getAvailable() { if (!$this->canBeShown()) { return []; } $result = []; foreach ( \array_values(\MatthiasWeb\RealMediaLibrary\Vendor\DevOwl\RealUtils\Core::getInstance()->getCrossSellings()) as $product ) { if (!$product->skip()) { $meta = $product->getMeta(); // Append dismissed count so the "Never show again" checkbox can be shown foreach ($meta as $action => &$value) { // Check if this action is skipped and should not be showed again if ($product->forceHide($action)) { unset($meta[$action]); continue; } $value['link'] = add_query_arg('feature', $action, $value['link']); $value['dismissed'] = $product->actionCounter($action); } if (\count($meta) > 0) { $result[$product->getSlug()] = $meta; } } } return $result; } /** * New instance. * * @codeCoverageIgnore */ public static function instance() { return new \MatthiasWeb\RealMediaLibrary\Vendor\DevOwl\RealUtils\cross\CrossSellingHandler(); } }
Fatal error: Uncaught Error: Class "MatthiasWeb\RealMediaLibrary\Vendor\DevOwl\RealUtils\cross\CrossSellingHandler" not found in /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/vendor/devowl-wp/real-utils/src/Core.php:60 Stack trace: #0 /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/vendor/devowl-wp/real-utils/src/Core.php(183): MatthiasWeb\RealMediaLibrary\Vendor\DevOwl\RealUtils\Core->__construct() #1 /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/vendor/devowl-wp/real-utils/src/AbstractInitiator.php(101): MatthiasWeb\RealMediaLibrary\Vendor\DevOwl\RealUtils\Core::getInstance() #2 /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/inc/Core.php(112): MatthiasWeb\RealMediaLibrary\Vendor\DevOwl\RealUtils\AbstractInitiator->start() #3 /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/inc/Core.php(336): MatthiasWeb\RealMediaLibrary\Core->__construct() #4 /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/inc/base/others/start.php(33): MatthiasWeb\RealMediaLibrary\Core::getInstance() #5 /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/index.php(57): require_once('/htdocs/lepiano...') #6 /htdocs/lepianoenballade.fr/wp-settings.php(522): include_once('/htdocs/lepiano...') #7 /htdocs/lepianoenballade.fr/wp-config.php(89): require_once('/htdocs/lepiano...') #8 /htdocs/lepianoenballade.fr/wp-load.php(50): require_once('/htdocs/lepiano...') #9 /htdocs/lepianoenballade.fr/wp-blog-header.php(13): require_once('/htdocs/lepiano...') #10 /htdocs/lepianoenballade.fr/index.php(17): require('/htdocs/lepiano...') #11 {main} thrown in /htdocs/lepianoenballade.fr/wp-content/plugins/real-media-library/vendor/devowl-wp/real-utils/src/Core.php on line 60