allers/UserFrostingInstaller.php' ), 'Composer\\Installers\\VanillaInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php' ), 'Composer\\Installers\\VgmcpInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php' ), 'Composer\\Installers\\WHMCSInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php' ), 'Composer\\Installers\\WinterInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/WinterInstaller.php' ), 'Composer\\Installers\\WolfCMSInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php' ), 'Composer\\Installers\\WordPressInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php' ), 'Composer\\Installers\\YawikInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php' ), 'Composer\\Installers\\ZendInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php' ), 'Composer\\Installers\\ZikulaInstaller' => array( 'version' => '1.12.0.0', 'path' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php' ), 'Container' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-container.php' ), 'DataSynchronizerTests' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/DataStores/Orders/DataSynchronizerTests.php' ), 'DatabaseUtilTest' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/Utilities/DatabaseUtilTest.php' ), 'EditLockTest' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/Admin/Orders/EditLockTest.php' ), 'Hook_Manager' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-hook-manager.php' ), 'HposTestCase' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/DataStores/Orders/HposTestCase.php' ), 'HtmlSanitizerTest' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/Utilities/HtmlSanitizerTest.php' ), 'Jetpack_IXR_Client' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php' ), 'Jetpack_IXR_ClientMulticall' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php' ), 'Jetpack_Options' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-options.php' ), 'Jetpack_Signature' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php' ), 'Jetpack_Tracks_Client' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-tracks-client.php' ), 'Jetpack_Tracks_Event' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-tracks-event.php' ), 'Jetpack_XMLRPC_Server' => array( 'version' => '1.51.7.0', 'path' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php' ), 'Latest_Autoloader_Guard' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-latest-autoloader-guard.php' ), 'Manifest_Reader' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-manifest-reader.php' ), 'MaxMind\\Db\\Reader' => array( 'version' => '1.11.0.0', 'path' => $vendorDir . '/maxmind-db/reader/src/MaxMind/Db/Reader.php' ), 'MaxMind\\Db\\Reader\\Decoder' => array( 'version' => '1.11.0.0', 'path' => $vendorDir . '/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php' ), 'MaxMind\\Db\\Reader\\InvalidDatabaseException' => array( 'version' => '1.11.0.0', 'path' => $vendorDir . '/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php' ), 'MaxMind\\Db\\Reader\\Metadata' => array( 'version' => '1.11.0.0', 'path' => $vendorDir . '/maxmind-db/reader/src/MaxMind/Db/Reader/Metadata.php' ), 'MaxMind\\Db\\Reader\\Util' => array( 'version' => '1.11.0.0', 'path' => $vendorDir . '/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php' ), 'MobileMessagingHandlerTest' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/Orders/MobileMessagingHandlerTest.php' ), 'OrderCacheTest' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Caching/OrderCacheTest.php' ), 'OrdersTableDataStoreRestOrdersControllerTests' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/DataStores/Orders/OrdersTableDataStoreRestOrdersControllerTests.php' ), 'OrdersTableDataStoreTests' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/DataStores/Orders/OrdersTableDataStoreTests.php' ), 'OrdersTableQueryTests' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/DataStores/Orders/OrdersTableQueryTests.php' ), 'OrdersTableRefundDataStoreTests' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Internal/DataStores/Orders/OrdersTableRefundDataStoreTests.php' ), 'PHP_Autoloader' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-php-autoloader.php' ), 'Path_Processor' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-path-processor.php' ), 'Pelago\\Emogrifier\\Caching\\SimpleStringCache' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/Caching/SimpleStringCache.php' ), 'Pelago\\Emogrifier\\CssInliner' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/CssInliner.php' ), 'Pelago\\Emogrifier\\Css\\CssDocument' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/Css/CssDocument.php' ), 'Pelago\\Emogrifier\\Css\\StyleRule' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/Css/StyleRule.php' ), 'Pelago\\Emogrifier\\HtmlProcessor\\AbstractHtmlProcessor' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/HtmlProcessor/AbstractHtmlProcessor.php' ), 'Pelago\\Emogrifier\\HtmlProcessor\\CssToAttributeConverter' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/HtmlProcessor/CssToAttributeConverter.php' ), 'Pelago\\Emogrifier\\HtmlProcessor\\HtmlNormalizer' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/HtmlProcessor/HtmlNormalizer.php' ), 'Pelago\\Emogrifier\\HtmlProcessor\\HtmlPruner' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/HtmlProcessor/HtmlPruner.php' ), 'Pelago\\Emogrifier\\Utilities\\ArrayIntersector' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/Utilities/ArrayIntersector.php' ), 'Pelago\\Emogrifier\\Utilities\\CssConcatenator' => array( 'version' => '6.0.0.0', 'path' => $vendorDir . '/pelago/emogrifier/src/Utilities/CssConcatenator.php' ), 'PhpToken' => array( 'version' => '1.27.0.0', 'path' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php' ), 'Plugin_Locator' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-plugin-locator.php' ), 'Plugins_Handler' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-plugins-handler.php' ), 'PostsToOrdersMigrationControllerTest' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/tests/php/src/Database/Migrations/CustomOrderTable/PostsToOrdersMigrationControllerTest.php' ), 'Sabberworm\\CSS\\CSSList\\AtRuleBlockList' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/CSSList/AtRuleBlockList.php' ), 'Sabberworm\\CSS\\CSSList\\CSSBlockList' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/CSSList/CSSBlockList.php' ), 'Sabberworm\\CSS\\CSSList\\CSSList' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/CSSList/CSSList.php' ), 'Sabberworm\\CSS\\CSSList\\Document' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/CSSList/Document.php' ), 'Sabberworm\\CSS\\CSSList\\KeyFrame' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/CSSList/KeyFrame.php' ), 'Sabberworm\\CSS\\Comment\\Comment' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Comment/Comment.php' ), 'Sabberworm\\CSS\\Comment\\Commentable' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Comment/Commentable.php' ), 'Sabberworm\\CSS\\OutputFormat' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/OutputFormat.php' ), 'Sabberworm\\CSS\\OutputFormatter' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/OutputFormatter.php' ), 'Sabberworm\\CSS\\Parser' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Parser.php' ), 'Sabberworm\\CSS\\Parsing\\OutputException' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Parsing/OutputException.php' ), 'Sabberworm\\CSS\\Parsing\\ParserState' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Parsing/ParserState.php' ), 'Sabberworm\\CSS\\Parsing\\SourceException' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Parsing/SourceException.php' ), 'Sabberworm\\CSS\\Parsing\\UnexpectedEOFException' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Parsing/UnexpectedEOFException.php' ), 'Sabberworm\\CSS\\Parsing\\UnexpectedTokenException' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Parsing/UnexpectedTokenException.php' ), 'Sabberworm\\CSS\\Property\\AtRule' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Property/AtRule.php' ), 'Sabberworm\\CSS\\Property\\CSSNamespace' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Property/CSSNamespace.php' ), 'Sabberworm\\CSS\\Property\\Charset' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Property/Charset.php' ), 'Sabberworm\\CSS\\Property\\Import' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Property/Import.php' ), 'Sabberworm\\CSS\\Property\\KeyframeSelector' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Property/KeyframeSelector.php' ), 'Sabberworm\\CSS\\Property\\Selector' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Property/Selector.php' ), 'Sabberworm\\CSS\\Renderable' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Renderable.php' ), 'Sabberworm\\CSS\\RuleSet\\AtRuleSet' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/RuleSet/AtRuleSet.php' ), 'Sabberworm\\CSS\\RuleSet\\DeclarationBlock' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/RuleSet/DeclarationBlock.php' ), 'Sabberworm\\CSS\\RuleSet\\RuleSet' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/RuleSet/RuleSet.php' ), 'Sabberworm\\CSS\\Rule\\Rule' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Rule/Rule.php' ), 'Sabberworm\\CSS\\Settings' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Settings.php' ), 'Sabberworm\\CSS\\Value\\CSSFunction' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/CSSFunction.php' ), 'Sabberworm\\CSS\\Value\\CSSString' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/CSSString.php' ), 'Sabberworm\\CSS\\Value\\CalcFunction' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/CalcFunction.php' ), 'Sabberworm\\CSS\\Value\\CalcRuleValueList' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/CalcRuleValueList.php' ), 'Sabberworm\\CSS\\Value\\Color' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/Color.php' ), 'Sabberworm\\CSS\\Value\\LineName' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/LineName.php' ), 'Sabberworm\\CSS\\Value\\PrimitiveValue' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/PrimitiveValue.php' ), 'Sabberworm\\CSS\\Value\\RuleValueList' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/RuleValueList.php' ), 'Sabberworm\\CSS\\Value\\Size' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/Size.php' ), 'Sabberworm\\CSS\\Value\\URL' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/URL.php' ), 'Sabberworm\\CSS\\Value\\Value' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/Value.php' ), 'Sabberworm\\CSS\\Value\\ValueList' => array( 'version' => '8.4.0.0', 'path' => $vendorDir . '/sabberworm/php-css-parser/src/Value/ValueList.php' ), 'Shutdown_Handler' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-shutdown-handler.php' ), 'Stringable' => array( 'version' => '1.27.0.0', 'path' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php' ), 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php' ), 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php' ), 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Exception/ExpressionErrorException.php' ), 'Symfony\\Component\\CssSelector\\Exception\\InternalErrorException' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Exception/InternalErrorException.php' ), 'Symfony\\Component\\CssSelector\\Exception\\ParseException' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Exception/ParseException.php' ), 'Symfony\\Component\\CssSelector\\Exception\\SyntaxErrorException' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Exception/SyntaxErrorException.php' ), 'Symfony\\Component\\CssSelector\\Node\\AbstractNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/AbstractNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\AttributeNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/AttributeNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\ClassNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/ClassNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\CombinedSelectorNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/CombinedSelectorNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\ElementNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/ElementNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\FunctionNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/FunctionNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\HashNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/HashNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\NegationNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/NegationNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\NodeInterface' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/NodeInterface.php' ), 'Symfony\\Component\\CssSelector\\Node\\PseudoNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/PseudoNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\SelectorNode' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/SelectorNode.php' ), 'Symfony\\Component\\CssSelector\\Node\\Specificity' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Node/Specificity.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\CommentHandler' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/CommentHandler.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HandlerInterface' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/HandlerInterface.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HashHandler' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/HashHandler.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\IdentifierHandler' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\NumberHandler' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/NumberHandler.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\StringHandler' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/StringHandler.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Handler\\WhitespaceHandler' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Parser' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Parser.php' ), 'Symfony\\Component\\CssSelector\\Parser\\ParserInterface' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/ParserInterface.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Reader' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Reader.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ClassParser' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ClassParser.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ElementParser' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ElementParser.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\EmptyStringParser' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\HashParser' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/HashParser.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Token' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Token.php' ), 'Symfony\\Component\\CssSelector\\Parser\\TokenStream' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/TokenStream.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\Tokenizer' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerEscaping' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php' ), 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerPatterns' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AbstractExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/AbstractExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AttributeMatchingExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\CombinationExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/CombinationExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\ExtensionInterface' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\FunctionExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/FunctionExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\HtmlExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/HtmlExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\NodeExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/NodeExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Extension\\PseudoClassExtension' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php' ), 'Symfony\\Component\\CssSelector\\XPath\\Translator' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/Translator.php' ), 'Symfony\\Component\\CssSelector\\XPath\\TranslatorInterface' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/TranslatorInterface.php' ), 'Symfony\\Component\\CssSelector\\XPath\\XPathExpr' => array( 'version' => '5.4.21.0', 'path' => $vendorDir . '/symfony/css-selector/XPath/XPathExpr.php' ), 'Symfony\\Polyfill\\Php80\\Php80' => array( 'version' => '1.27.0.0', 'path' => $vendorDir . '/symfony/polyfill-php80/Php80.php' ), 'Symfony\\Polyfill\\Php80\\PhpToken' => array( 'version' => '1.27.0.0', 'path' => $vendorDir . '/symfony/polyfill-php80/PhpToken.php' ), 'UnhandledMatchError' => array( 'version' => '1.27.0.0', 'path' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php' ), 'ValueError' => array( 'version' => '1.27.0.0', 'path' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php' ), 'Version_Loader' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-version-loader.php' ), 'Version_Selector' => array( 'version' => '2.11.18.0', 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/class-version-selector.php' ), 'WC_Interactivity_Store' => array( 'version' => '10.6.5.0', 'path' => $baseDir . '/packages/woocommerce-blocks/src/Interactivity/class-wc-interactivity-store.php' ), 'WC_REST_CRUD_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-crud-controller.php' ), 'WC_REST_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-controller.php' ), 'WC_REST_Coupons_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-coupons-controller.php' ), 'WC_REST_Coupons_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-coupons-v1-controller.php' ), 'WC_REST_Coupons_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-coupons-v2-controller.php' ), 'WC_REST_Customer_Downloads_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-customer-downloads-controller.php' ), 'WC_REST_Customer_Downloads_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-customer-downloads-v1-controller.php' ), 'WC_REST_Customer_Downloads_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-customer-downloads-v2-controller.php' ), 'WC_REST_Customers_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-customers-controller.php' ), 'WC_REST_Customers_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-customers-v1-controller.php' ), 'WC_REST_Customers_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-customers-v2-controller.php' ), 'WC_REST_Data_Continents_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-data-continents-controller.php' ), 'WC_REST_Data_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-data-controller.php' ), 'WC_REST_Data_Countries_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-data-countries-controller.php' ), 'WC_REST_Data_Currencies_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-data-currencies-controller.php' ), 'WC_REST_Network_Orders_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-network-orders-controller.php' ), 'WC_REST_Network_Orders_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-network-orders-v2-controller.php' ), 'WC_REST_Order_Notes_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-order-notes-controller.php' ), 'WC_REST_Order_Notes_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-order-notes-v1-controller.php' ), 'WC_REST_Order_Notes_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-order-notes-v2-controller.php' ), 'WC_REST_Order_Refunds_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-order-refunds-controller.php' ), 'WC_REST_Order_Refunds_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-order-refunds-v1-controller.php' ), 'WC_REST_Order_Refunds_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-order-refunds-v2-controller.php' ), 'WC_REST_Orders_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-orders-controller.php' ), 'WC_REST_Orders_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-orders-v1-controller.php' ), 'WC_REST_Orders_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-orders-v2-controller.php' ), 'WC_REST_Payment_Gateways_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-payment-gateways-controller.php' ), 'WC_REST_Payment_Gateways_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-payment-gateways-v2-controller.php' ), 'WC_REST_Posts_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-posts-controller.php' ), 'WC_REST_Product_Attribute_Terms_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-attribute-terms-controller.php' ), 'WC_REST_Product_Attribute_Terms_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-product-attribute-terms-v1-controller.php' ), 'WC_REST_Product_Attribute_Terms_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-attribute-terms-v2-controller.php' ), 'WC_REST_Product_Attributes_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-attributes-controller.php' ), 'WC_REST_Product_Attributes_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-product-attributes-v1-controller.php' ), 'WC_REST_Product_Attributes_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-attributes-v2-controller.php' ), 'WC_REST_Product_Categories_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-categories-controller.php' ), 'WC_REST_Product_Categories_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-product-categories-v1-controller.php' ), 'WC_REST_Product_Categories_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-categories-v2-controller.php' ), 'WC_REST_Product_Reviews_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-reviews-controller.php' ), 'WC_REST_Product_Reviews_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-product-reviews-v1-controller.php' ), 'WC_REST_Product_Reviews_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-reviews-v2-controller.php' ), 'WC_REST_Product_Shipping_Classes_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-shipping-classes-controller.php' ), 'WC_REST_Product_Shipping_Classes_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-product-shipping-classes-v1-controller.php' ), 'WC_REST_Product_Shipping_Classes_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-shipping-classes-v2-controller.php' ), 'WC_REST_Product_Tags_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-tags-controller.php' ), 'WC_REST_Product_Tags_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-product-tags-v1-controller.php' ), 'WC_REST_Product_Tags_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-tags-v2-controller.php' ), 'WC_REST_Product_Variations_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-product-variations-controller.php' ), 'WC_REST_Product_Variations_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-product-variations-v2-controller.php' ), 'WC_REST_Products_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php' ), 'WC_REST_Products_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php' ), 'WC_REST_Products_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php' ), 'WC_REST_Report_Coupons_Totals_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-coupons-totals-controller.php' ), 'WC_REST_Report_Customers_Totals_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-customers-totals-controller.php' ), 'WC_REST_Report_Orders_Totals_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-orders-totals-controller.php' ), 'WC_REST_Report_Products_Totals_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-products-totals-controller.php' ), 'WC_REST_Report_Reviews_Totals_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-reviews-totals-controller.php' ), 'WC_REST_Report_Sales_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-sales-controller.php' ), 'WC_REST_Report_Sales_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-report-sales-v1-controller.php' ), 'WC_REST_Report_Sales_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-report-sales-v2-controller.php' ), 'WC_REST_Report_Top_Sellers_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-report-top-sellers-controller.php' ), 'WC_REST_Report_Top_Sellers_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-report-top-sellers-v1-controller.php' ), 'WC_REST_Report_Top_Sellers_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-report-top-sellers-v2-controller.php' ), 'WC_REST_Reports_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-reports-controller.php' ), 'WC_REST_Reports_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-reports-v1-controller.php' ), 'WC_REST_Reports_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-reports-v2-controller.php' ), 'WC_REST_Setting_Options_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-setting-options-controller.php' ), 'WC_REST_Setting_Options_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-setting-options-v2-controller.php' ), 'WC_REST_Settings_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-settings-controller.php' ), 'WC_REST_Settings_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-settings-v2-controller.php' ), 'WC_REST_Shipping_Methods_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-shipping-methods-controller.php' ), 'WC_REST_Shipping_Methods_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-shipping-methods-v2-controller.php' ), 'WC_REST_Shipping_Zone_Locations_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-shipping-zone-locations-controller.php' ), 'WC_REST_Shipping_Zone_Locations_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-shipping-zone-locations-v2-controller.php' ), 'WC_REST_Shipping_Zone_Methods_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-shipping-zone-methods-controller.php' ), 'WC_REST_Shipping_Zone_Methods_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-shipping-zone-methods-v2-controller.php' ), 'WC_REST_Shipping_Zones_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-shipping-zones-controller.php' ), 'WC_REST_Shipping_Zones_Controller_Base' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-shipping-zones-controller-base.php' ), 'WC_REST_Shipping_Zones_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-shipping-zones-v2-controller.php' ), 'WC_REST_System_Status_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-system-status-controller.php' ), 'WC_REST_System_Status_Tools_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-system-status-tools-controller.php' ), 'WC_REST_System_Status_Tools_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-system-status-tools-v2-controller.php' ), 'WC_REST_System_Status_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-system-status-v2-controller.php' ), 'WC_REST_Tax_Classes_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-tax-classes-controller.php' ), 'WC_REST_Tax_Classes_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-tax-classes-v1-controller.php' ), 'WC_REST_Tax_Classes_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-tax-classes-v2-controller.php' ), 'WC_REST_Taxes_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-taxes-controller.php' ), 'WC_REST_Taxes_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-taxes-v1-controller.php' ), 'WC_REST_Taxes_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-taxes-v2-controller.php' ), 'WC_REST_Telemetry_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Telemetry/class-wc-rest-telemetry-controller.php' ), 'WC_REST_Terms_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-terms-controller.php' ), 'WC_REST_Webhook_Deliveries_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-webhook-deliveries-v1-controller.php' ), 'WC_REST_Webhook_Deliveries_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-webhook-deliveries-v2-controller.php' ), 'WC_REST_Webhooks_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version3/class-wc-rest-webhooks-controller.php' ), 'WC_REST_Webhooks_V1_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version1/class-wc-rest-webhooks-v1-controller.php' ), 'WC_REST_Webhooks_V2_Controller' => array( 'version' => '8.0.2.0', 'path' => $baseDir . '/includes/rest-api/Controllers/Version2/class-wc-rest-webhooks-v2-controller.php' ), ); le-author-wpseo'] = sprintf( __( '%1$s, Author at %2$s', 'wordpress-seo' ), '%%name%%', '%%sitename%%' ) . ' %%page%% '; /* translators: %s expands to the search phrase. */ $this->defaults['title-search-wpseo'] = sprintf( __( 'You searched for %s', 'wordpress-seo' ), '%%searchphrase%%' ) . ' %%page%% %%sep%% %%sitename%%'; $this->defaults['title-404-wpseo'] = __( 'Page not found', 'wordpress-seo' ) . ' %%sep%% %%sitename%%'; /* translators: 1: link to post; 2: link to blog. */ $this->defaults['rssafter'] = sprintf( __( 'The post %1$s appeared first on %2$s.', 'wordpress-seo' ), '%%POSTLINK%%', '%%BLOGLINK%%' ); $this->defaults['breadcrumbs-404crumb'] = __( 'Error 404: Page not found', 'wordpress-seo' ); $this->defaults['breadcrumbs-archiveprefix'] = __( 'Archives for', 'wordpress-seo' ); $this->defaults['breadcrumbs-home'] = __( 'Home', 'wordpress-seo' ); $this->defaults['breadcrumbs-searchprefix'] = __( 'You searched for', 'wordpress-seo' ); } /** * Add dynamically created default options based on available post types and taxonomies. * * @return void */ public function enrich_defaults() { $enriched_defaults = $this->enriched_defaults; if ( $enriched_defaults !== null ) { $this->defaults += $enriched_defaults; return; } $enriched_defaults = []; /* * Retrieve all the relevant post type and taxonomy arrays. * * WPSEO_Post_Type::get_accessible_post_types() should *not* be used here. * These are the defaults and can be prepared for any public post type. */ $post_type_objects = get_post_types( [ 'public' => true ], 'objects' ); if ( $post_type_objects ) { /* translators: %s expands to the name of a post type (plural). */ $archive = sprintf( __( '%s Archive', 'wordpress-seo' ), '%%pt_plural%%' ); foreach ( $post_type_objects as $pt ) { $enriched_defaults[ 'title-' . $pt->name ] = '%%title%% %%page%% %%sep%% %%sitename%%'; // Text field. $enriched_defaults[ 'metadesc-' . $pt->name ] = ''; // Text area. $enriched_defaults[ 'noindex-' . $pt->name ] = false; $enriched_defaults[ 'display-metabox-pt-' . $pt->name ] = true; $enriched_defaults[ 'post_types-' . $pt->name . '-maintax' ] = 0; // Select box. $enriched_defaults[ 'schema-page-type-' . $pt->name ] = 'WebPage'; $enriched_defaults[ 'schema-article-type-' . $pt->name ] = ( $pt->name === 'post' ) ? 'Article' : 'None'; if ( $pt->name !== 'attachment' ) { $enriched_defaults[ 'social-title-' . $pt->name ] = '%%title%%'; // Text field. $enriched_defaults[ 'social-description-' . $pt->name ] = ''; // Text area. $enriched_defaults[ 'social-image-url-' . $pt->name ] = ''; // Hidden input field. $enriched_defaults[ 'social-image-id-' . $pt->name ] = 0; // Hidden input field. } // Custom post types that have archives. if ( ! $pt->_builtin && WPSEO_Post_Type::has_archive( $pt ) ) { $enriched_defaults[ 'title-ptarchive-' . $pt->name ] = $archive . ' %%page%% %%sep%% %%sitename%%'; // Text field. $enriched_defaults[ 'metadesc-ptarchive-' . $pt->name ] = ''; // Text area. $enriched_defaults[ 'bctitle-ptarchive-' . $pt->name ] = ''; // Text field. $enriched_defaults[ 'noindex-ptarchive-' . $pt->name ] = false; $enriched_defaults[ 'social-title-ptarchive-' . $pt->name ] = $archive; // Text field. $enriched_defaults[ 'social-description-ptarchive-' . $pt->name ] = ''; // Text area. $enriched_defaults[ 'social-image-url-ptarchive-' . $pt->name ] = ''; // Hidden input field. $enriched_defaults[ 'social-image-id-ptarchive-' . $pt->name ] = 0; // Hidden input field. } } } $taxonomy_objects = get_taxonomies( [ 'public' => true ], 'object' ); if ( $taxonomy_objects ) { /* translators: %s expands to the variable used for term title. */ $archives = sprintf( __( '%s Archives', 'wordpress-seo' ), '%%term_title%%' ); foreach ( $taxonomy_objects as $tax ) { $enriched_defaults[ 'title-tax-' . $tax->name ] = $archives . ' %%page%% %%sep%% %%sitename%%'; // Text field. $enriched_defaults[ 'metadesc-tax-' . $tax->name ] = ''; // Text area. $enriched_defaults[ 'display-metabox-tax-' . $tax->name ] = true; $enriched_defaults[ 'noindex-tax-' . $tax->name ] = ( $tax->name === 'post_format' ); $enriched_defaults[ 'social-title-tax-' . $tax->name ] = $archives; // Text field. $enriched_defaults[ 'social-description-tax-' . $tax->name ] = ''; // Text area. $enriched_defaults[ 'social-image-url-tax-' . $tax->name ] = ''; // Hidden input field. $enriched_defaults[ 'social-image-id-tax-' . $tax->name ] = 0; // Hidden input field. $enriched_defaults[ 'taxonomy-' . $tax->name . '-ptparent' ] = 0; // Select box;. } } $this->enriched_defaults = $enriched_defaults; $this->defaults += $enriched_defaults; } /** * Invalidates enrich_defaults() cache. * * Called from actions: * - (un)registered_post_type * - (un)registered_taxonomy * * @return void */ public function invalidate_enrich_defaults_cache() { $this->enriched_defaults = null; } /** * Validate the option. * * @param array $dirty New value for the option. * @param array $clean Clean value for the option, normally the defaults. * @param array $old Old value of the option. * * @return array Validated clean value for the option to be saved to the database. */ protected function validate_option( $dirty, $clean, $old ) { $allowed_post_types = $this->get_allowed_post_types(); foreach ( $clean as $key => $value ) { $switch_key = $this->get_switch_key( $key ); switch ( $switch_key ) { // Only ever set programmatically, so no reason for intense validation. case 'company_logo_meta': case 'person_logo_meta': if ( isset( $dirty[ $key ] ) ) { $clean[ $key ] = $dirty[ $key ]; } break; /* Breadcrumbs text fields. */ case 'breadcrumbs-404crumb': case 'breadcrumbs-archiveprefix': case 'breadcrumbs-home': case 'breadcrumbs-prefix': case 'breadcrumbs-searchprefix': case 'breadcrumbs-sep': if ( isset( $dirty[ $key ] ) ) { $clean[ $key ] = wp_kses_post( $dirty[ $key ] ); } break; /* * Text fields. */ /* * Covers: * 'title-home-wpseo', 'title-author-wpseo', 'title-archive-wpseo', // phpcs:ignore Squiz.PHP.CommentedOutCode.Found -- This isn't commented out code. * 'title-search-wpseo', 'title-404-wpseo' * 'title-' . $pt->name * 'title-ptarchive-' . $pt->name * 'title-tax-' . $tax->name * 'social-title-' . $pt->name * 'social-title-ptarchive-' . $pt->name * 'social-title-tax-' . $tax->name * 'social-title-author-wpseo', 'social-title-archive-wpseo' * 'open_graph_frontpage_title' */ case 'website_name': case 'alternate_website_name': case 'title-': case 'social-title-': case 'open_graph_frontpage_title': if ( isset( $dirty[ $key ] ) ) { $clean[ $key ] = WPSEO_Utils::sanitize_text_field( $dirty[ $key ] ); } break; case 'company_or_person': if ( isset( $dirty[ $key ] ) ) { if ( in_array( $dirty[ $key ], [ 'company', 'person' ], true ) ) { $clean[ $key ] = $dirty[ $key ]; } else { $defaults = $this->get_defaults(); $clean[ $key ] = $defaults['company_or_person']; } } break; /* * Covers: * 'company_logo', 'person_logo' // phpcs:ignore Squiz.PHP.CommentedOutCode.Found -- This isn't commented out code. */ case 'company_logo': case 'person_logo': case 'open_graph_frontpage_image': // When a logo changes, we need to ditch the caches we have for it. unset( $clean[ $switch_key . '_id' ] ); unset( $clean[ $switch_key . '_meta' ] ); $this->validate_url( $key, $dirty, $old, $clean ); break; /* * Covers: * 'social-image-url-' . $pt->name * 'social-image-url-ptarchive-' . $pt->name * 'social-image-url-tax-' . $tax->name * 'social-image-url-author-wpseo', 'social-image-url-archive-wpseo' */ case 'social-image-url-': $this->validate_url( $key, $dirty, $old, $clean ); break; /* * Covers: * 'metadesc-home-wpseo', 'metadesc-author-wpseo', 'metadesc-archive-wpseo' * 'metadesc-' . $pt->name * 'metadesc-ptarchive-' . $pt->name * 'metadesc-tax-' . $tax->name * and also: * 'bctitle-ptarchive-' . $pt->name * 'social-description-' . $pt->name * 'social-description-ptarchive-' . $pt->name * 'social-description-tax-' . $tax->name * 'social-description-author-wpseo', 'social-description-archive-wpseo' * 'open_graph_frontpage_desc' */ case 'metadesc-': case 'bctitle-ptarchive-': case 'company_name': case 'company_alternate_name': case 'person_name': case 'social-description-': case 'open_graph_frontpage_desc': if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) { $clean[ $key ] = WPSEO_Utils::sanitize_text_field( $dirty[ $key ] ); } break; /* * Covers: 'rssbefore', 'rssafter' // phpcs:ignore Squiz.PHP.CommentedOutCode.Found -- This isn't commented out code. */ case 'rssbefore': case 'rssafter': if ( isset( $dirty[ $key ] ) ) { $clean[ $key ] = wp_kses_post( $dirty[ $key ] ); } break; /* 'post_types-' . $pt->name . '-maintax' fields. */ case 'post_types-': $post_type = str_replace( [ 'post_types-', '-maintax' ], '', $key ); $taxonomies = get_object_taxonomies( $post_type, 'names' ); if ( isset( $dirty[ $key ] ) ) { if ( $taxonomies !== [] && in_array( $dirty[ $key ], $taxonomies, true ) ) { $clean[ $key ] = $dirty[ $key ]; } elseif ( (string) $dirty[ $key ] === '0' || (string) $dirty[ $key ] === '' ) { $clean[ $key ] = 0; } elseif ( sanitize_title_with_dashes( $dirty[ $key ] ) === $dirty[ $key ] ) { // Allow taxonomies which may not be registered yet. $clean[ $key ] = $dirty[ $key ]; } else { if ( isset( $old[ $key ] ) ) { $clean[ $key ] = sanitize_title_with_dashes( $old[ $key ] ); } /* * @todo [JRF => whomever] Maybe change the untranslated $pt name in the * error message to the nicely translated label ? */ add_settings_error( $this->group_name, // Slug title of the setting. $key, // Suffix-id for the error message box. /* translators: %s expands to a post type. */ sprintf( __( 'Please select a valid taxonomy for post type "%s"', 'wordpress-seo' ), $post_type ), // The error message. 'error' // Message type. ); } } elseif ( isset( $old[ $key ] ) ) { $clean[ $key ] = sanitize_title_with_dashes( $old[ $key ] ); } unset( $taxonomies, $post_type ); break; /* 'taxonomy-' . $tax->name . '-ptparent' fields. */ case 'taxonomy-': if ( isset( $dirty[ $key ] ) ) { if ( $allowed_post_types !== [] && in_array( $dirty[ $key ], $allowed_post_types, true ) ) { $clean[ $key ] = $dirty[ $key ]; } elseif ( (string) $dirty[ $key ] === '0' || (string) $dirty[ $key ] === '' ) { $clean[ $key ] = 0; } elseif ( sanitize_key( $dirty[ $key ] ) === $dirty[ $key ] ) { // Allow taxonomies which may not be registered yet. $clean[ $key ] = $dirty[ $key ]; } else { if ( isset( $old[ $key ] ) ) { $clean[ $key ] = sanitize_key( $old[ $key ] ); } /* * @todo [JRF =? whomever] Maybe change the untranslated $tax name in the * error message to the nicely translated label ? */ $tax = str_replace( [ 'taxonomy-', '-ptparent' ], '', $key ); add_settings_error( $this->group_name, // Slug title of the setting. '_' . $tax, // Suffix-ID for the error message box. /* translators: %s expands to a taxonomy slug. */ sprintf( __( 'Please select a valid post type for taxonomy "%s"', 'wordpress-seo' ), $tax ), // The error message. 'error' // Message type. ); unset( $tax ); } } elseif ( isset( $old[ $key ] ) ) { $clean[ $key ] = sanitize_key( $old[ $key ] ); } break; /* * Covers: * 'company_or_person_user_id' * 'company_logo_id', 'person_logo_id', 'open_graph_frontpage_image_id' * 'social-image-id-' . $pt->name * 'social-image-id-ptarchive-' . $pt->name * 'social-image-id-tax-' . $tax->name * 'social-image-id-author-wpseo', 'social-image-id-archive-wpseo' */ case 'company_or_person_user_id': case 'company_logo_id': case 'person_logo_id': case 'social-image-id-': case 'open_graph_frontpage_image_id': case 'publishing_principles_id': case 'ownership_funding_info_id': case 'actionable_feedback_policy_id': case 'corrections_policy_id': case 'ethics_policy_id': case 'diversity_policy_id': case 'diversity_staffing_report_id': if ( isset( $dirty[ $key ] ) ) { $int = WPSEO_Utils::validate_int( $dirty[ $key ] ); if ( $int !== false && $int >= 0 ) { $clean[ $key ] = $int; } } elseif ( isset( $old[ $key ] ) ) { $int = WPSEO_Utils::validate_int( $old[ $key ] ); if ( $int !== false && $int >= 0 ) { $clean[ $key ] = $int; } } break; /* Separator field - Radio. */ case 'separator': if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== '' ) { // Get separator fields. $separator_fields = $this->get_separator_options(); // Check if the given separator exists. if ( isset( $separator_fields[ $dirty[ $key ] ] ) ) { $clean[ $key ] = $dirty[ $key ]; } } break; case 'schema-page-type-': if ( isset( $dirty[ $key ] ) && is_string( $dirty[ $key ] ) ) { if ( array_key_exists( $dirty[ $key ], Schema_Types::PAGE_TYPES ) ) { $clean[ $key ] = $dirty[ $key ]; } else { $defaults = $this->get_defaults(); $post_type = str_replace( $switch_key, '', $key ); $clean[ $key ] = $defaults[ $switch_key . $post_type ]; } } break; case 'schema-article-type-': if ( isset( $dirty[ $key ] ) && is_string( $dirty[ $key ] ) ) { /** * Filter: 'wpseo_schema_article_types' - Allow developers to filter the available article types. * * Make sure when you filter this to also filter `wpseo_schema_article_types_labels`. * * @api array $schema_article_types The available schema article types. */ if ( array_key_exists( $dirty[ $key ], apply_filters( 'wpseo_schema_article_types', Schema_Types::ARTICLE_TYPES ) ) ) { $clean[ $key ] = $dirty[ $key ]; } else { $defaults = $this->get_defaults(); $post_type = str_replace( $switch_key, '', $key ); $clean[ $key ] = $defaults[ $switch_key . $post_type ]; } } break; /* * Boolean fields. */ /* * Covers: * 'noindex-author-wpseo', 'noindex-author-noposts-wpseo', 'noindex-archive-wpseo' * 'noindex-' . $pt->name * 'noindex-ptarchive-' . $pt->name * 'noindex-tax-' . $tax->name * 'forcerewritetitle': * 'noodp': * 'noydir': * 'disable-author': * 'disable-date': * 'disable-post_format'; * 'noindex-' * 'display-metabox-pt-' * 'display-metabox-pt-'. $pt->name * 'display-metabox-tax-' * 'display-metabox-tax-' . $tax->name * 'breadcrumbs-display-blog-page' * 'breadcrumbs-boldlast' * 'breadcrumbs-enable' * 'stripcategorybase' */ default: $clean[ $key ] = ( isset( $dirty[ $key ] ) ? WPSEO_Utils::validate_bool( $dirty[ $key ] ) : false ); break; } } return $clean; } /** * Retrieve a list of the allowed post types as breadcrumb parent for a taxonomy. * Helper method for validation. * * {@internal Don't make static as new types may still be registered.}} * * @return array */ protected function get_allowed_post_types() { $allowed_post_types = []; /* * WPSEO_Post_Type::get_accessible_post_types() should *not* be used here. */ $post_types = get_post_types( [ 'public' => true ], 'objects' ); if ( get_option( 'show_on_front' ) === 'page' && get_option( 'page_for_posts' ) > 0 ) { $allowed_post_types[] = 'post'; } if ( is_array( $post_types ) && $post_types !== [] ) { foreach ( $post_types as $type ) { if ( WPSEO_Post_Type::has_archive( $type ) ) { $allowed_post_types[] = $type->name; } } } return $allowed_post_types; } /** * Clean a given option value. * * @param array $option_value Old (not merged with defaults or filtered) option value to * clean according to the rules for this option. * @param string|null $current_version Optional. Version from which to upgrade, if not set, * version specific upgrades will be disregarded. * @param array|null $all_old_option_values Optional. Only used when importing old options to have * access to the real old values, in contrast to the saved ones. * * @return array Cleaned option. */ protected function clean_option( $option_value, $current_version = null, $all_old_option_values = null ) { static $original = null; // Double-run this function to ensure renaming of the taxonomy options will work. if ( ! isset( $original ) && has_action( 'wpseo_double_clean_titles', [ $this, 'clean' ] ) === false ) { add_action( 'wpseo_double_clean_titles', [ $this, 'clean' ] ); $original = $option_value; } /* * Move options from very old option to this one. * * {@internal Don't rename to the 'current' names straight away as that would prevent * the rename/unset combi below from working.}} * * @todo [JRF] Maybe figure out a smarter way to deal with this. */ $old_option = null; if ( isset( $all_old_option_values ) ) { // Ok, we have an import. if ( isset( $all_old_option_values['wpseo_indexation'] ) && is_array( $all_old_option_values['wpseo_indexation'] ) && $all_old_option_values['wpseo_indexation'] !== [] ) { $old_option = $all_old_option_values['wpseo_indexation']; } } else { $old_option = get_option( 'wpseo_indexation' ); } if ( is_array( $old_option ) && $old_option !== [] ) { $move = [ 'noindexauthor' => 'noindex-author', 'disableauthor' => 'disable-author', 'noindexdate' => 'noindex-archive', 'noindexcat' => 'noindex-category', 'noindextag' => 'noindex-post_tag', 'noindexpostformat' => 'noindex-post_format', ]; foreach ( $move as $old => $new ) { if ( isset( $old_option[ $old ] ) && ! isset( $option_value[ $new ] ) ) { $option_value[ $new ] = $old_option[ $old ]; } } unset( $move, $old, $new ); } unset( $old_option ); // Fix wrongness created by buggy version 1.2.2. if ( isset( $option_value['title-home'] ) && $option_value['title-home'] === '%%sitename%% - %%sitedesc%% - 12345' ) { $option_value['title-home-wpseo'] = '%%sitename%% - %%sitedesc%%'; } /* * Renaming these options to avoid ever overwritting these if a (bloody stupid) user / * programmer would use any of the following as a custom post type or custom taxonomy: * 'home', 'author', 'archive', 'search', '404', 'subpages'. * * Similarly, renaming the tax options to avoid a custom post type and a taxonomy * with the same name occupying the same option. */ $rename = [ 'title-home' => 'title-home-wpseo', 'title-author' => 'title-author-wpseo', 'title-archive' => 'title-archive-wpseo', 'title-search' => 'title-search-wpseo', 'title-404' => 'title-404-wpseo', 'metadesc-home' => 'metadesc-home-wpseo', 'metadesc-author' => 'metadesc-author-wpseo', 'metadesc-archive' => 'metadesc-archive-wpseo', 'noindex-author' => 'noindex-author-wpseo', 'noindex-archive' => 'noindex-archive-wpseo', ]; foreach ( $rename as $old => $new ) { if ( isset( $option_value[ $old ] ) && ! isset( $option_value[ $new ] ) ) { $option_value[ $new ] = $option_value[ $old ]; unset( $option_value[ $old ] ); } } unset( $rename, $old, $new ); /* * {@internal This clean-up action can only be done effectively once the taxonomies * and post_types have been registered, i.e. at the end of the init action.}} */ if ( isset( $original ) && current_filter() === 'wpseo_double_clean_titles' || did_action( 'wpseo_double_clean_titles' ) > 0 ) { $rename = [ 'title-' => 'title-tax-', 'metadesc-' => 'metadesc-tax-', 'noindex-' => 'noindex-tax-', 'tax-hideeditbox-' => 'hideeditbox-tax-', ]; $taxonomy_names = get_taxonomies( [ 'public' => true ], 'names' ); $post_type_names = get_post_types( [ 'public' => true ], 'names' ); $defaults = $this->get_defaults(); if ( $taxonomy_names !== [] ) { foreach ( $taxonomy_names as $tax ) { foreach ( $rename as $old_prefix => $new_prefix ) { if ( ( isset( $original[ $old_prefix . $tax ] ) && ! isset( $original[ $new_prefix . $tax ] ) ) && ( ! isset( $option_value[ $new_prefix . $tax ] ) || ( isset( $option_value[ $new_prefix . $tax ] ) && $option_value[ $new_prefix . $tax ] === $defaults[ $new_prefix . $tax ] ) ) ) { $option_value[ $new_prefix . $tax ] = $original[ $old_prefix . $tax ]; /* * Check if there is a cpt with the same name as the tax, * if so, we should make sure that the old setting hasn't been removed. */ if ( ! isset( $post_type_names[ $tax ] ) && isset( $option_value[ $old_prefix . $tax ] ) ) { unset( $option_value[ $old_prefix . $tax ] ); } else { if ( isset( $post_type_names[ $tax ] ) && ! isset( $option_value[ $old_prefix . $tax ] ) ) { $option_value[ $old_prefix . $tax ] = $original[ $old_prefix . $tax ]; } } if ( $old_prefix === 'tax-hideeditbox-' ) { unset( $option_value[ $old_prefix . $tax ] ); } } } } } unset( $rename, $taxonomy_names, $post_type_names, $defaults, $tax, $old_prefix, $new_prefix ); } /* * Make sure the values of the variable option key options are cleaned as they * may be retained and would not be cleaned/validated then. */ if ( is_array( $option_value ) && $option_value !== [] ) { foreach ( $option_value as $key => $value ) { $switch_key = $this->get_switch_key( $key ); // Similar to validation routine - any changes made there should be made here too. switch ( $switch_key ) { /* Text fields. */ case 'title-': case 'metadesc-': case 'bctitle-ptarchive-': $option_value[ $key ] = WPSEO_Utils::sanitize_text_field( $value ); break; case 'separator': if ( ! array_key_exists( $value, $this->get_separator_options() ) ) { $option_value[ $key ] = false; } break; /* * Boolean fields. */ /* * Covers: * 'noindex-' * 'hideeditbox-' */ default: $option_value[ $key ] = WPSEO_Utils::validate_bool( $value ); break; } } unset( $key, $value, $switch_key ); } return $option_value; } /** * Make sure that any set option values relating to post_types and/or taxonomies are retained, * even when that post_type or taxonomy may not yet have been registered. * * {@internal Overrule the abstract class version of this to make sure one extra renamed * variable key does not get removed. IMPORTANT: keep this method in line with * the parent on which it is based!}} * * @param array $dirty Original option as retrieved from the database. * @param array $clean Filtered option where any options which shouldn't be in our option * have already been removed and any options which weren't set * have been set to their defaults. * * @return array */ protected function retain_variable_keys( $dirty, $clean ) { if ( ( is_array( $this->variable_array_key_patterns ) && $this->variable_array_key_patterns !== [] ) && ( is_array( $dirty ) && $dirty !== [] ) ) { // Add the extra pattern. $patterns = $this->variable_array_key_patterns; $patterns[] = 'tax-hideeditbox-'; /** * Allow altering the array with variable array key patterns. * * @api array $patterns Array with the variable array key patterns. */ $patterns = apply_filters( 'wpseo_option_titles_variable_array_key_patterns', $patterns ); foreach ( $dirty as $key => $value ) { // Do nothing if already in filtered option array. if ( isset( $clean[ $key ] ) ) { continue; } foreach ( $patterns as $pattern ) { if ( strpos( $key, $pattern ) === 0 ) { $clean[ $key ] = $value; break; } } } } return $clean; } /** * Retrieves a list of separator options. * * @return array An array of the separator options. */ protected static function get_separator_option_list() { $separators = [ 'sc-dash' => [ 'option' => '-', 'label' => __( 'Dash', 'wordpress-seo' ), ], 'sc-ndash' => [ 'option' => '–', 'label' => __( 'En dash', 'wordpress-seo' ), ], 'sc-mdash' => [ 'option' => '—', 'label' => __( 'Em dash', 'wordpress-seo' ), ], 'sc-colon' => [ 'option' => ':', 'label' => __( 'Colon', 'wordpress-seo' ), ], 'sc-middot' => [ 'option' => '·', 'label' => __( 'Middle dot', 'wordpress-seo' ), ], 'sc-bull' => [ 'option' => '•', 'label' => __( 'Bullet', 'wordpress-seo' ), ], 'sc-star' => [ 'option' => '*', 'label' => __( 'Asterisk', 'wordpress-seo' ), ], 'sc-smstar' => [ 'option' => '⋆', 'label' => __( 'Low asterisk', 'wordpress-seo' ), ], 'sc-pipe' => [ 'option' => '|', 'label' => __( 'Vertical bar', 'wordpress-seo' ), ], 'sc-tilde' => [ 'option' => '~', 'label' => __( 'Small tilde', 'wordpress-seo' ), ], 'sc-laquo' => [ 'option' => '«', 'label' => __( 'Left angle quotation mark', 'wordpress-seo' ), ], 'sc-raquo' => [ 'option' => '»', 'label' => __( 'Right angle quotation mark', 'wordpress-seo' ), ], 'sc-lt' => [ 'option' => '<', 'label' => __( 'Less than sign', 'wordpress-seo' ), ], 'sc-gt' => [ 'option' => '>', 'label' => __( 'Greater than sign', 'wordpress-seo' ), ], ]; /** * Allows altering the separator options array. * * @api array $separators Array with the separator options. */ $separator_list = apply_filters( 'wpseo_separator_option_list', $separators ); if ( ! is_array( $separator_list ) ) { return $separators; } return $separator_list; } }