Changeset 2290193
- Timestamp:
- 04/23/2020 03:03:00 PM (6 years ago)
- Location:
- pre-orders-for-woocommerce
- Files:
-
- 297 added
- 6 edited
-
tags/1.0.2 (added)
-
tags/1.0.2/composer.json (added)
-
tags/1.0.2/composer.lock (added)
-
tags/1.0.2/etc (added)
-
tags/1.0.2/etc/conf.php (added)
-
tags/1.0.2/main.php (added)
-
tags/1.0.2/media (added)
-
tags/1.0.2/media/css (added)
-
tags/1.0.2/media/css/main.css (added)
-
tags/1.0.2/media/js (added)
-
tags/1.0.2/media/js/date-picker.js (added)
-
tags/1.0.2/media/js/main.js (added)
-
tags/1.0.2/readme.txt (added)
-
tags/1.0.2/src (added)
-
tags/1.0.2/src/Bootstrap.php (added)
-
tags/1.0.2/src/Bundles.php (added)
-
tags/1.0.2/src/Cart.php (added)
-
tags/1.0.2/src/Checkout.php (added)
-
tags/1.0.2/src/License.php (added)
-
tags/1.0.2/src/Notices.php (added)
-
tags/1.0.2/src/Order.php (added)
-
tags/1.0.2/src/Packages.php (added)
-
tags/1.0.2/src/Product.php (added)
-
tags/1.0.2/src/Settings.php (added)
-
tags/1.0.2/src/Shop.php (added)
-
tags/1.0.2/src/StatusManager.php (added)
-
tags/1.0.2/src/Sync.php (added)
-
tags/1.0.2/src/Tabs.php (added)
-
tags/1.0.2/src/emails (added)
-
tags/1.0.2/src/emails/class-wc-email-customer-preorder-available.php (added)
-
tags/1.0.2/vendor (added)
-
tags/1.0.2/vendor/autoload.php (added)
-
tags/1.0.2/vendor/bin (added)
-
tags/1.0.2/vendor/bin/var-dump-server (added)
-
tags/1.0.2/vendor/composer (added)
-
tags/1.0.2/vendor/composer/ClassLoader.php (added)
-
tags/1.0.2/vendor/composer/LICENSE (added)
-
tags/1.0.2/vendor/composer/autoload_classmap.php (added)
-
tags/1.0.2/vendor/composer/autoload_files.php (added)
-
tags/1.0.2/vendor/composer/autoload_namespaces.php (added)
-
tags/1.0.2/vendor/composer/autoload_psr4.php (added)
-
tags/1.0.2/vendor/composer/autoload_real.php (added)
-
tags/1.0.2/vendor/composer/autoload_static.php (added)
-
tags/1.0.2/vendor/composer/installed.json (added)
-
tags/1.0.2/vendor/guzzlehttp (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/.php_cs (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/CHANGELOG.md (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/Dockerfile (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/LICENSE (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/README.md (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/UPGRADING.md (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/composer.json (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Client.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/ClientInterface.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Cookie (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/HandlerStack.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/MessageFormatter.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Middleware.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/Pool.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/RequestOptions.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/TransferStats.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/UriTemplate.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/functions.php (added)
-
tags/1.0.2/vendor/guzzlehttp/guzzle/src/functions_include.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/CHANGELOG.md (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/LICENSE (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/Makefile (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/README.md (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/composer.json (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/AggregateException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/CancellationException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/Coroutine.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/EachPromise.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/FulfilledPromise.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/Promise.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/PromiseInterface.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/PromisorInterface.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/RejectedPromise.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/RejectionException.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/TaskQueue.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/TaskQueueInterface.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/functions.php (added)
-
tags/1.0.2/vendor/guzzlehttp/promises/src/functions_include.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7 (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/CHANGELOG.md (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/LICENSE (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/README.md (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/composer.json (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/AppendStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/BufferStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/CachingStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/DroppingStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/FnStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/InflateStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/LazyOpenStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/LimitStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/MessageTrait.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/MultipartStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/NoSeekStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/PumpStream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/Request.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/Response.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/Rfc7230.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/ServerRequest.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/Stream.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/StreamWrapper.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/UploadedFile.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/Uri.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/UriNormalizer.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/UriResolver.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/functions.php (added)
-
tags/1.0.2/vendor/guzzlehttp/psr7/src/functions_include.php (added)
-
tags/1.0.2/vendor/kitetail (added)
-
tags/1.0.2/vendor/kitetail/zttp (added)
-
tags/1.0.2/vendor/kitetail/zttp/.travis.yml (added)
-
tags/1.0.2/vendor/kitetail/zttp/CONTRIBUTING.md (added)
-
tags/1.0.2/vendor/kitetail/zttp/LICENSE.md (added)
-
tags/1.0.2/vendor/kitetail/zttp/README.md (added)
-
tags/1.0.2/vendor/kitetail/zttp/composer.json (added)
-
tags/1.0.2/vendor/kitetail/zttp/src (added)
-
tags/1.0.2/vendor/kitetail/zttp/src/Zttp.php (added)
-
tags/1.0.2/vendor/psr (added)
-
tags/1.0.2/vendor/psr/http-message (added)
-
tags/1.0.2/vendor/psr/http-message/CHANGELOG.md (added)
-
tags/1.0.2/vendor/psr/http-message/LICENSE (added)
-
tags/1.0.2/vendor/psr/http-message/README.md (added)
-
tags/1.0.2/vendor/psr/http-message/composer.json (added)
-
tags/1.0.2/vendor/psr/http-message/src (added)
-
tags/1.0.2/vendor/psr/http-message/src/MessageInterface.php (added)
-
tags/1.0.2/vendor/psr/http-message/src/RequestInterface.php (added)
-
tags/1.0.2/vendor/psr/http-message/src/ResponseInterface.php (added)
-
tags/1.0.2/vendor/psr/http-message/src/ServerRequestInterface.php (added)
-
tags/1.0.2/vendor/psr/http-message/src/StreamInterface.php (added)
-
tags/1.0.2/vendor/psr/http-message/src/UploadedFileInterface.php (added)
-
tags/1.0.2/vendor/psr/http-message/src/UriInterface.php (added)
-
tags/1.0.2/vendor/ralouphie (added)
-
tags/1.0.2/vendor/ralouphie/getallheaders (added)
-
tags/1.0.2/vendor/ralouphie/getallheaders/LICENSE (added)
-
tags/1.0.2/vendor/ralouphie/getallheaders/README.md (added)
-
tags/1.0.2/vendor/ralouphie/getallheaders/composer.json (added)
-
tags/1.0.2/vendor/ralouphie/getallheaders/src (added)
-
tags/1.0.2/vendor/ralouphie/getallheaders/src/getallheaders.php (added)
-
tags/1.0.2/vendor/symfony (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/LICENSE (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/Mbstring.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/README.md (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/Resources (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/Resources/unidata (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/bootstrap.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-mbstring/composer.json (added)
-
tags/1.0.2/vendor/symfony/polyfill-php72 (added)
-
tags/1.0.2/vendor/symfony/polyfill-php72/LICENSE (added)
-
tags/1.0.2/vendor/symfony/polyfill-php72/Php72.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-php72/README.md (added)
-
tags/1.0.2/vendor/symfony/polyfill-php72/bootstrap.php (added)
-
tags/1.0.2/vendor/symfony/polyfill-php72/composer.json (added)
-
tags/1.0.2/vendor/symfony/var-dumper (added)
-
tags/1.0.2/vendor/symfony/var-dumper/.gitattributes (added)
-
tags/1.0.2/vendor/symfony/var-dumper/CHANGELOG.md (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/AmqpCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ArgsStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/Caster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ClassStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ConstStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/CutArrayStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/CutStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/DOMCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/DateCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/DoctrineCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/DsCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/DsPairStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/EnumStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ExceptionCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/FrameStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/GmpCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ImagineCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ImgStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/IntlCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/LinkStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/MemcachedCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/PdoCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/PgSqlCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/RedisCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ReflectionCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/ResourceCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/SplCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/StubCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/SymfonyCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/TraceStub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/UuidCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/AbstractCloner.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/ClonerInterface.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/Cursor.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/Data.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/DumperInterface.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/Stub.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Cloner/VarCloner.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Command (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Command/Descriptor (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Command/ServerDumpCommand.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/AbstractDumper.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/CliDumper.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ContextProvider (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/HtmlDumper.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Dumper/ServerDumper.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Exception (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/LICENSE (added)
-
tags/1.0.2/vendor/symfony/var-dumper/README.md (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/bin (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/bin/var-dump-server (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/css (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/functions (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/functions/dump.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/js (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Server (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Server/Connection.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Server/DumpServer.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Test (added)
-
tags/1.0.2/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/VarDumper.php (added)
-
tags/1.0.2/vendor/symfony/var-dumper/composer.json (added)
-
tags/1.0.2/vendor/tightenco (added)
-
tags/1.0.2/vendor/tightenco/collect (added)
-
tags/1.0.2/vendor/tightenco/collect/composer.json (added)
-
tags/1.0.2/vendor/tightenco/collect/src (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Contracts (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Contracts/Support (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Contracts/Support/Arrayable.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Contracts/Support/Htmlable.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Contracts/Support/Jsonable.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/Arr.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/Collection.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/HigherOrderCollectionProxy.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/HtmlString.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/Traits (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/Traits/Macroable.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/alias.php (added)
-
tags/1.0.2/vendor/tightenco/collect/src/Collect/Support/helpers.php (added)
-
trunk/main.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/Bootstrap.php (modified) (2 diffs)
-
trunk/src/Checkout.php (modified) (22 diffs)
-
trunk/src/Notices.php (modified) (1 diff)
-
trunk/src/Tabs.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pre-orders-for-woocommerce/trunk/main.php
r2281172 r2290193 2 2 /** 3 3 * Plugin Name: Preoders for WooCommerce 4 * Plugin URI: https://brightplugins.com/ woocommerce-preorder-plugin-review/4 * Plugin URI: https://brightplugins.com/ 5 5 * Description: Ultimate Preorders Plugin for WooCommerce. 6 * Version: 1.0. 16 * Version: 1.0.2 7 7 * Author: Bright Plugins 8 8 * Author URI: https://brightplugins.com 9 9 * Text Domain: preorders-woocommerce 10 * Domain Path: /etc/i18n/languages/ 11 * 12 * @package WooCommercePreOrders 10 * Domain Path: /etc/i18n/languages/. 13 11 */ 14 15 12 defined('ABSPATH') || exit; 16 13 … … 20 17 } 21 18 19 use Woocommerce_Preorders\Bootstrap; 22 20 use Woocommerce_Preorders\Packages; 23 use Woocommerce_Preorders\Bootstrap;24 21 25 /** 26 * Check if WooCommerce is active 27 **/ 28 if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) { 22 // Check if WooCommerce is active 23 if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')), true)) { 29 24 // Put your plugin code here 30 25 31 26 add_action('woocommerce_loaded', function () { 32 require_once WCPO_PLUGIN_DIR .'/vendor/autoload.php';33 require_once WCPO_PLUGIN_DIR . '/etc/conf.php';27 require_once WCPO_PLUGIN_DIR.'/vendor/autoload.php'; 28 require_once WCPO_PLUGIN_DIR.'/etc/conf.php'; 34 29 35 30 $bootstrap = new Bootstrap(); 36 31 register_activation_hook(__FILE__, [$bootstrap, 'defaultOptions']); 37 32 38 33 $package = new Packages(); 39 40 34 }); 41 35 } else { 42 36 add_action('admin_notices', function () { 43 37 $class = 'notice notice-error'; 44 $message = __( 'Oops! looks like WooCommerce is disabled. Please, enable it in order to use WooCommerce Pre-Orders.', 'preorders');45 printf( '<div class="%1$s"><p>%2$s</p></div>', esc_attr( $class ), esc_html( $message ) ); 38 $message = __('Oops! looks like WooCommerce is disabled. Please, enable it in order to use WooCommerce Pre-Orders.', 'preorders'); 39 printf('<div class="%1$s"><p>%2$s</p></div>', esc_attr($class), esc_html($message)); 46 40 }); 47 41 } -
pre-orders-for-woocommerce/trunk/readme.txt
r2281175 r2290193 1 === Pre orders for WooCommerce ===1 === Pre-orders for WooCommerce === 2 2 Contributors: brightvesseldev, milardovich 3 3 Requires at least: 5.0 4 4 Tested up to: 5.4 5 5 Requires PHP: 7.0 6 Stable tag: 1.0. 16 Stable tag: 1.0.2 7 7 License: GPLv3 8 8 License URI: https://www.gnu.org/licenses/gpl-3.0.html … … 12 12 == Description == 13 13 14 Preorders for WooCommerce Plugin - Free Version 14 An efficient system that easily translates to the specific needs of store, our plugin allows you to follow up on pre-sales in a comprehensive way. 15 15 16 Do you need to accept Preorders on your WooCommerce site? 16 The wait for a new product (or the return of a popular one) is a great opportunity to gain new customers or engage older ones. However, too many companies misuse this unique time until customers lose interest. Engaging is critical in the days before a product release, which is why we’ve created a plugin that covers all bases. Give customers a chance to pre-order so they’ll get their new item just as it becomes available, letting you monitor each step of the way. 17 Here’s what you can do with the Bright Plugins WooCommerce Pre-Order Plugin: 17 18 18 There are many benefits in offering preorders which can help businesses in several ways. A preorder is when a company offers customers a product that's not yet manufactured or on sale. 19 * Manage all pre-orders through a specialized section on My Account. 20 * Set up a “pre-order” status for both simple and variable products. 21 * Create an expiration date for pre-order periods. 22 * Filter all orders that include products ordered during the “pre-order” phase. 23 * Automatically turn products that are out of stock into pre-orders. 24 * Make products available automatically as soon as the pre-order period ends. 25 * Prevent customers from adding pre-order products when they have already-available items on their carts. 26 * Edit single product prices during the pre-order period: fixed, percentage or markup on the base price. 27 * Apply “pre-order” status to more than one product through a WordPress Bulk action grouped by tag or category. 28 * Enable the pre-order option for a variable product, in the case that every variation was previously added to the pre-order status. 29 * Notify website admins when products’ pre-order periods are nearing their ends, emailing them a set amount of days before the date. 30 * Notify users when products’ pre-order periods are over and they’ve become fully available. 19 31 20 Bright Vessel’s decision to build a better plugin then what is currently available for allowing WooCommerce store owners to add preorder products to their website. 32 **Our plugin supports 4 different business cases. Only case #4 is available in this free version. If you need any of the other cases, please [buy a pro license](https://brightplugins.com/woocommerc-preorder-plugin/).** 21 33 22 ** Here are a few main reasons why you should have Preorders on your website:**34 **Case #1 – Treat the whole order as a pre-order** 23 35 24 * Limited edition products, such as Christmas or special editions 25 * New flagship products for your company 26 * New businesses launching into the market 27 * Special promotions or discounts on an already-existing product 28 * Supply chain slow in restocking 29 * Basic Features in Free Version: 30 * Create a preorder product. 31 * Allow customers to choose between buying preorder products or available ones 32 * Premium Features in Paid Version 33 * Separate shipping methods for available and preorder products. 34 * Separate orders between preordered and available products. 36 If you choose this mode, the customer will be able to select a shipping date, and all products will be shipped together at that specific day. 35 37 38 That day will be limited to the latest pre-order date available, for instance, if the order has 3 different products marked as pre-order ones: 36 39 37 [Purchase Preorders for WooCommerce Plugin Premium Version.](https://share.brightvessel.com/MAA "PRO version.") 40 Product A will be available on the 1st of September 41 Product B will be available on the 3rd of September 42 Product C will be available on the 1st of October 38 43 39 *Modes:* 44 Then, the minimum shipping date will be the 1st of October (i.e: the minimum date when all products will be available). 45 Link to: Wordpress and WooCommerce Management 40 46 41 * Free Version:*47 **Case #2 – Generate two separate orders, one for pre-orders and one for in-stock products** 42 48 43 **#1 - Treat the whole order as a preorder** 49 If you choose this mode, the customer will get two different orders generated, one for pre-order products and one for in-stock ones. For instance, if your order looks like this: 44 50 45 If you choose this mode, the customer will be able to select a shipping date, and all products will be shipped together on that specific day. 51 Product A is in-stock 52 Product B will be available on the 1st of September 53 Product C is in-stock 46 54 47 Note: In this mode, only preorder products can be ordered. You cannot mix normal products and preorders products 55 Then you will get an order which will be processed now, with products A and C, and then another order which will be shipped on the 1st of September. 56 Link to: Wordpress and WooCommerce Management 48 57 58 **Case #3 – Generate separate orders for each pre-order products** 49 59 50 *Premium Version:* 60 If you choose this mode, then the customer will get one order for all in-stock products, and then one order for each pre-order product which will be shipped in each specific pre-order date. 61 Link to: Wordpress and WooCommerce Management 51 62 52 ** #2 - Generate two separate orders, one for preorders and one for in-stock products**63 **Case #4 – Allow only pre-orders** 53 64 54 If you choose this mode, the customer will get two different orders generated, one for preorder products and one for in-stock ones. 65 Use this mode if you want to only allow your customers to either choose pre-order products or available ones. 66 Some other preorder features we offer: 55 67 56 **#3 - Generate separate orders for each preorder products** 68 Pick an optional date and time when the product will be available for purchase 69 When products are available, admin can set to automatically charge 70 Set and Change release dates for preorder products 71 Email feature that allows admins to notify all customers who pre-ordered a product 72 If products are no longer available, current preorders can be canceled. 73 Easily filter through all preorders with a custom order status 74 Compatible with simple and variant products 75 Optional feature to allow for an additional charge for preorders 76 Customize the text on the add to cart buttons for preorders 57 77 58 If you choose this mode, then the customer will get one order for all in-stock products, and then one order for each preorder product, which will be shipped in each specific preorder date.59 60 **#4 - Allow only preorders**61 62 Use this mode if you want to only allow your customers to either choose preorder products or available ones.63 64 65 [Here is a PDF user’s guide.](https://share.brightvessel.com/M4r "user’s guide.")66 67 [Here is the online documentation.](https://share.brightvessel.com/MVy "online documentation.")68 69 Have any ideas on how we can improve the plugin? Don’t hesitate to share it [here](https://share.brightvessel.com/MAb "here") and we will try to implement it in future versions of the plugin.70 71 Do you like the plugin and want to say about it?72 78 73 79 -
pre-orders-for-woocommerce/trunk/src/Bootstrap.php
r2281061 r2290193 13 13 14 14 $this->generatePreOrderStatus(); 15 16 //$this->compatibilityCheck(); 15 17 16 18 // add_action('woocommerce_thankyou', [$checkout, 'checkGeneratedOrderStatus']); … … 40 42 if (!get_option($option) || '' === get_option($option)) { 41 43 add_option($option, $value); 44 } 45 } 46 } 47 48 public function compatibilityCheck() 49 { 50 // Check if the free version is enabled, and if so, disable it 51 if (in_array('preorders-for-woocommerce/main.php', apply_filters('active_plugins', get_option('active_plugins')), true)) { 52 $license = new License(); 53 if ($license->isValid()) { 54 deactivate_plugins('preorders-for-woocommerce/main.php'); 42 55 } 43 56 } -
pre-orders-for-woocommerce/trunk/src/Checkout.php
r2281061 r2290193 13 13 14 14 $this->cart = new Cart(); 15 if($this->preordersMode == 'either') 16 add_filter( 'woocommerce_add_to_cart_validation', [$this->cart, 'allowOneTypeOnly'], 99, 2 ); 15 if ('either' === $this->preordersMode) { 16 add_filter('woocommerce_add_to_cart_validation', [$this->cart, 'allowOneTypeOnly'], 99, 2); 17 } 17 18 18 19 add_filter('woocommerce_billing_fields', [$this, 'addShippingDateField']); 19 20 20 if (! in_array(get_option('wc_preorders_mode'),['whole','either'])) {21 if (!\in_array(get_option('wc_preorders_mode'), ['whole', 'either'], true)) { 21 22 add_action('woocommerce_thankyou', [$this, 'purgePreOrderedItems'], 9999, 1); 22 23 } else { … … 32 33 public function addShippingDateField($fields) 33 34 { 34 if (get_option('wc_preorders_always_choose_date') == 'no') { 35 if (!is_checkout() && !is_cart()) { 36 return $fields; 37 } 38 if ('no' === get_option('wc_preorders_always_choose_date')) { 35 39 $class = ['disabled-input', 'form-row-wide']; 36 40 } else { … … 40 44 $cart = $woocommerce->cart->get_cart(); 41 45 $this->cart->checkPreOrderProducts($cart); 42 if ( count($this->cart->getPreOrderProducts()) > 0) {46 if (\count($this->cart->getPreOrderProducts()) > 0) { 43 47 $fields['preorder_date'] = [ 44 48 'label' => __('Pre order Date', 'preorder'), … … 50 54 'required' => true, 51 55 'default' => $this->cart->getOldestDate(), 52 'custom_attributes' => ['data-pre_order_date' => $this->cart->getOldestDate()] 56 'custom_attributes' => ['data-pre_order_date' => $this->cart->getOldestDate()], 53 57 ]; 54 58 } … … 57 61 } 58 62 59 private function getPreorderedProducts($order)60 {61 $preorderedProducts = [];62 foreach ($order->get_items() as $item) {63 $productId = 0 !== $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id();64 $isPreOrder = get_post_meta($productId, '_pre_order_date', true);65 if ($isPreOrder && strtotime($isPreOrder) > time()) {66 $preorderedProducts[] = $item;67 }68 }69 return $preorderedProducts;70 }71 72 63 public function manageShippingCosts($rates, $package) 73 64 { 74 65 $factor = 1; 75 if ( $this->preordersMode == 'individual') {66 if ('individual' === $this->preordersMode) { 76 67 /* 77 68 * If we are on "individual" mode, then we will have to multiply it by the number of … … 81 72 $cart = $woocommerce->cart->get_cart(); 82 73 $this->cart->checkPreOrderProducts($cart); 83 if ( count($this->cart->getPreOrderProducts()) > 0) {84 $factor = 1 +count($this->cart->getPreOrderProducts());74 if (\count($this->cart->getPreOrderProducts()) > 0) { 75 $factor = 1 + \count($this->cart->getPreOrderProducts()); 85 76 } 86 } elseif ( $this->preordersMode == 'partial') {77 } elseif ('partial' === $this->preordersMode) { 87 78 /* 88 79 * If we are in partial mode and the "multiply shipping" option is enabled, … … 94 85 $rates[$id]->cost *= $factor; 95 86 } 96 97 87 98 88 return $rates; … … 108 98 * as whole. Check our docs for more info. 109 99 */ 110 if (( $this->preordersMode == 'partial' && count($order->get_items()) == count($this->cart->getPreOrderProducts())) || ($this->preordersMode == 'individual' && count($order->get_items()) == count($this->cart->getPreOrderProducts()) && count($order->get_items()) == 1)) {100 if (('partial' === $this->preordersMode && \count($order->get_items()) === \count($this->cart->getPreOrderProducts())) || ('individual' === $this->preordersMode && \count($order->get_items()) === \count($this->cart->getPreOrderProducts()))) { 111 101 $this->preordersMode = 'whole'; 112 102 } … … 136 126 * Check our docs for more info. 137 127 */ 138 if ( $this->preordersMode !== 'whole') {128 if ('whole' !== $this->preordersMode) { 139 129 $preorderedProducts = $this->getPreorderedProducts($order); 140 141 130 142 131 /* … … 154 143 } 155 144 156 /* 157 * Calculate shipping split factor 158 */ 145 // Calculate shipping split factor 159 146 $factor = $this->getSplitShippingFactor($order); 160 147 … … 175 162 $preorder->set_address($shippingAddress, 'shipping'); 176 163 177 178 164 $shippingMethod = $order->get_items('shipping')[array_keys($order->get_items('shipping'))[1]]->get_data(); 179 $shippingMethodCurated = new \WC_Shipping_Rate($shippingMethod['id'], $shippingMethod['method_title'], $shippingMethod['total'] /$factor, $shippingMethod['total_tax']/$factor, $shippingMethod['method_id'], $shippingMethod['instance_id']);165 $shippingMethodCurated = new \WC_Shipping_Rate($shippingMethod['id'], $shippingMethod['method_title'], $shippingMethod['total'] / $factor, $shippingMethod['total_tax'] / $factor, $shippingMethod['method_id'], $shippingMethod['instance_id']); 180 166 $preorder->add_shipping($shippingMethodCurated); 181 167 … … 189 175 190 176 $order->remove_item(array_keys($order->get_items('shipping'))[1]); 177 191 178 break; 192 193 179 /* 194 180 * Case #3: generate one order for all in-stock products, and then one order for each pre-order product … … 196 182 */ 197 183 case 'individual': 198 /* 199 * TODO: we are repeating too much code between cases #2 and #3 200 */ 201 $i=1; 184 // TODO: we are repeating too much code between cases #2 and #3 185 $i = 1; 202 186 foreach ($preorderedProducts as $product) { 203 187 $preorder = wc_create_order(); … … 207 191 $preorder->set_address($shippingAddress, 'shipping'); 208 192 209 210 193 $shippingMethod = $order->get_items('shipping')[array_keys($order->get_items('shipping'))[$i]]->get_data(); 211 $shippingMethodCurated = new \WC_Shipping_Rate($shippingMethod['id'], $shippingMethod['method_title'], $shippingMethod['total'] /$factor, $shippingMethod['total_tax']/$factor, $shippingMethod['method_id'], $shippingMethod['instance_id']);194 $shippingMethodCurated = new \WC_Shipping_Rate($shippingMethod['id'], $shippingMethod['method_title'], $shippingMethod['total'] / $factor, $shippingMethod['total_tax'] / $factor, $shippingMethod['method_id'], $shippingMethod['instance_id']); 212 195 $preorder->add_shipping($shippingMethodCurated); 213 196 … … 221 204 * date for the chose date. Otherwise get that info from each product. 222 205 */ 223 if ( get_option('wc_preorders_always_choose_date') == 'yes') {206 if ('yes' === get_option('wc_preorders_always_choose_date')) { 224 207 $preorder->update_meta_data('_preorder_date', $data['preorder_date']); 225 208 } else { … … 229 212 230 213 $preorder->update_meta_data('_payment_method', get_post_meta($orderId, '_payment_method', true)); 231 $preorder->update_meta_data('_payment_method_title', get_post_meta($orderId,'_payment_method',true));232 $preorder->update_meta_data('_created_via', get_post_meta($orderId,'_created_via',true));233 $preorder->update_meta_data('_date_paid', get_post_meta($orderId,'_date_paid',true));234 $preorder->update_meta_data('_paid_date', get_post_meta($orderId,'_paid_date',true));214 $preorder->update_meta_data('_payment_method_title', get_post_meta($orderId, '_payment_method', true)); 215 $preorder->update_meta_data('_created_via', get_post_meta($orderId, '_created_via', true)); 216 $preorder->update_meta_data('_date_paid', get_post_meta($orderId, '_date_paid', true)); 217 $preorder->update_meta_data('_paid_date', get_post_meta($orderId, '_paid_date', true)); 235 218 236 219 $preorder->save(); 237 $i++;220 ++$i; 238 221 } 239 222 240 $i =0;223 $i = 0; 241 224 foreach ($order->get_items('shipping') as $key => $shippingMethods) { 242 if ($i>0){225 if ($i > 0) { 243 226 $order->remove_item($key); 244 227 } 245 $i++;228 ++$i; 246 229 } 247 230 … … 254 237 if (isset($data['preorder_date'])) { 255 238 $order->update_meta_data('_preorder_date', $data['preorder_date']); 256 $ preorder->set_status('wc-pre-ordered');239 $order->set_status('wc-pre-ordered'); 257 240 } 241 258 242 break; 259 243 } … … 268 252 $items = $order->get_data(); 269 253 $this->cart->checkPreOrderProducts($items); 270 if ( count($this->cart->getPreOrderProducts()) > 0) {254 if (\count($this->cart->getPreOrderProducts()) > 0) { 271 255 $order->update_status('pre-ordered'); 272 256 } … … 284 268 $diff = 0; 285 269 foreach ($items as $key => $product) { 286 if (('yes' == get_post_meta($product->get_product_id(), '_is_pre_order', true) && strtotime(get_post_meta($product->get_product_id(), '_pre_order_date', true)) > time()) || 'yes'== get_post_meta($product->get_variation_id(), '_is_pre_order', true) && strtotime(get_post_meta($product->get_variation_id(), '_pre_order_date', true)) > time()) {270 if (('yes' === get_post_meta($product->get_product_id(), '_is_pre_order', true) && strtotime(get_post_meta($product->get_product_id(), '_pre_order_date', true)) > time()) || 'yes' === get_post_meta($product->get_variation_id(), '_is_pre_order', true) && strtotime(get_post_meta($product->get_variation_id(), '_pre_order_date', true)) > time()) { 287 271 $deleteKeys[] = wc_delete_order_item($key); 288 272 $diff += $product->get_total(); … … 290 274 } 291 275 $newTotal = $order->calculate_totals() - $diff; 292 293 276 294 277 $order->set_total($newTotal); … … 304 287 } 305 288 } 306 307 /* 308 * Get the shipping total and split it into the amount of orders generated 309 */ 289 290 private function getPreorderedProducts($order) 291 { 292 $preorderedProducts = []; 293 foreach ($order->get_items() as $item) { 294 $productId = 0 !== $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id(); 295 $isPreOrder = get_post_meta($productId, '_pre_order_date', true); 296 if ($isPreOrder && strtotime($isPreOrder) > time()) { 297 $preorderedProducts[] = $item; 298 } 299 } 300 301 return $preorderedProducts; 302 } 303 304 // Get the shipping total and split it into the amount of orders generated 310 305 private function getSplitShippingFactor($order) 311 306 { 312 if ( get_option('wc_preorders_multiply_shipping') !== 'yes') {307 if ('yes' !== get_option('wc_preorders_multiply_shipping')) { 313 308 return 1; 314 309 } 315 310 316 /* 317 * If we are working on partial mode, then we will split it in 2 halves 318 */ 319 if ($this->preordersMode == 'partial') { 311 // If we are working on partial mode, then we will split it in 2 halves 312 if ('partial' === $this->preordersMode) { 320 313 return 2; 321 /* 322 * Otherwise we will have to split it by the amount of orders that we have 323 */ 324 } elseif ($this->preordersMode == 'individual') { 325 return 1+count($this->getPreorderedProducts($order)); 326 } else { 327 return 1; 328 } 314 // Otherwise we will have to split it by the amount of orders that we have 315 } 316 if ('individual' === $this->preordersMode) { 317 return 1 + \count($this->getPreorderedProducts($order)); 318 } 319 320 return 1; 329 321 } 330 322 … … 350 342 { 351 343 return array_filter($fields, function ($key) use ($prefix) { 352 return strpos($key, $prefix) === 0;344 return 0 === strpos($key, $prefix); 353 345 }, ARRAY_FILTER_USE_KEY); 354 346 } -
pre-orders-for-woocommerce/trunk/src/Notices.php
r2281061 r2290193 28 28 29 29 if($availableFrom > $now && $diff > 0) { 30 echo '<br ><small style="color:red"> '.sprintf(__("Note: this item will be available for shipping in %s days</small>",'preorders'),$diff).'</small>';30 echo '<br/><small style="color:red"> '.sprintf(__("Note: this item will be available for shipping in %s days</small>",'preorders'),$diff).'</small>'; 31 31 } 32 32 } -
pre-orders-for-woocommerce/trunk/src/Tabs.php
r2281061 r2290193 59 59 60 60 if ($is_pre_order_variation == 'yes') { 61 $pre_order_date_value = sanitize_text_field($_POST['_pre_order_date_' . $post_id]);62 $product->update_meta_data('_pre_order_date', $pre_order_date_value);61 $pre_order_date_value = esc_html($_POST['_pre_order_date_' . $post_id]); 62 $product->update_meta_data('_pre_order_date', esc_attr($pre_order_date_value)); 63 63 } 64 64 … … 100 100 101 101 if ($is_pre_order_variation == 'yes') { 102 $pre_order_date_value = sanitize_text_field($_POST['_pre_order_date']);103 $product->update_meta_data('_pre_order_date', $pre_order_date_value);102 $pre_order_date_value = esc_html($_POST['_pre_order_date']); 103 $product->update_meta_data('_pre_order_date', esc_attr($pre_order_date_value)); 104 104 } 105 105
Note: See TracChangeset
for help on using the changeset viewer.