From 06c4748e459f051cfcca63ddd9f40a15ed38bc51 Mon Sep 17 00:00:00 2001 From: Josh Crawford Date: Sat, 26 Oct 2024 22:37:19 +1100 Subject: [PATCH] Add Craft 5 support --- CHANGELOG.md | 6 ++++ composer.json | 12 +++---- docs/get-started/requirements.md | 6 ++-- src/AbandonedCart.php | 2 -- src/base/PluginTrait.php | 55 ++++++++++---------------------- src/services/Carts.php | 2 +- 6 files changed, 33 insertions(+), 50 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c316b5..7b75f47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 4.0.0 - 2024-10-25 + +### Changed +- Now requires Craft 5.0+. +- Now requires Craft Commerce 5.0+. + ## 3.0.0 - 2024-10-25 > {note} The plugin’s package name has changed to `verbb/abandoned-cart`. Abandoned Cart will need be updated to 3.0 from a terminal, by running `composer require verbb/abandoned-cart && composer remove mediabeastnz/craft-commerce-abandoned-cart`. diff --git a/composer.json b/composer.json index 08f288b..20b41b0 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "verbb/abandoned-cart", "description": "Send multiple email reminders to customers that have abandoned their carts.", "type": "craft-plugin", - "version": "3.0.0", + "version": "4.0.0", "keywords": [ "craft", "cms", @@ -29,10 +29,10 @@ } ], "require": { - "php": "^8.0.2", - "craftcms/cms": "^4.0.0", - "craftcms/commerce": "^4.0.0", - "verbb/base": "^2.0.0" + "php": "^8.2", + "craftcms/cms": "^5.0.0", + "craftcms/commerce": "^5.0.0", + "verbb/base": "^3.0.0" }, "autoload": { "psr-4": { @@ -42,7 +42,7 @@ "extra": { "name": "Abandoned Cart", "handle": "abandoned-cart", - "changelogUrl": "https://raw.githubusercontent.com/verbb/abandoned-cart/craft-4/CHANGELOG.md", + "changelogUrl": "https://raw.githubusercontent.com/verbb/abandoned-cart/craft-5/CHANGELOG.md", "class": "verbb\\abandonedcart\\AbandonedCart" } } diff --git a/docs/get-started/requirements.md b/docs/get-started/requirements.md index 2ae85b9..670652d 100644 --- a/docs/get-started/requirements.md +++ b/docs/get-started/requirements.md @@ -1,10 +1,10 @@ # Requirements ## Craft CMS -Abandoned Cart requires Craft CMS 4.0 or greater. +Abandoned Cart requires Craft CMS 5.0 or greater. ## Craft Commerce -Abandoned Cart requires Craft Commerce 4.0 or greater. +Abandoned Cart requires Craft Commerce 5.0 or greater. ## PHP -Abandoned Cart requires PHP 8.0.2 or greater. +Abandoned Cart requires PHP 8.2 or greater. diff --git a/src/AbandonedCart.php b/src/AbandonedCart.php index 39add66..6c55cd9 100644 --- a/src/AbandonedCart.php +++ b/src/AbandonedCart.php @@ -41,8 +41,6 @@ public function init(): void self::$plugin = $this; - $this->_setPluginComponents(); - $this->_setLogging(); $this->_registerVariables(); $this->_registerCraftEventListeners(); diff --git a/src/base/PluginTrait.php b/src/base/PluginTrait.php index 99e02a1..69fec39 100644 --- a/src/base/PluginTrait.php +++ b/src/base/PluginTrait.php @@ -7,37 +7,35 @@ use Craft; -use yii\log\Logger; - -use verbb\base\BaseHelper; +use verbb\base\LogTrait; +use verbb\base\helpers\Plugin; trait PluginTrait { // Static Properties // ========================================================================= - public static AbandonedCart $plugin; - + public static ?AbandonedCart $plugin = null; - // Public Methods + // Traits // ========================================================================= - public static function log(string $message, array $attributes = []): void - { - if ($attributes) { - $message = Craft::t('abandoned-cart', $message, $attributes); - } + use LogTrait; + - Craft::getLogger()->log($message, Logger::LEVEL_INFO, 'abandoned-cart'); - } + // Static Methods + // ========================================================================= - public static function error(string $message, array $attributes = []): void + public static function config(): array { - if ($attributes) { - $message = Craft::t('abandoned-cart', $message, $attributes); - } - - Craft::getLogger()->log($message, Logger::LEVEL_ERROR, 'abandoned-cart'); + Plugin::bootstrapPlugin('abandoned-cart'); + + return [ + 'components' => [ + 'carts' => Carts::class, + 'service' => Service::class, + ], + ]; } @@ -54,23 +52,4 @@ public function getService(): Service return $this->get('service'); } - - // Private Methods - // ========================================================================= - - private function _setPluginComponents(): void - { - $this->setComponents([ - 'carts' => Carts::class, - 'service' => Service::class, - ]); - - BaseHelper::registerModule(); - } - - private function _setLogging(): void - { - BaseHelper::setFileLogging('abandoned-cart'); - } - } \ No newline at end of file diff --git a/src/services/Carts.php b/src/services/Carts.php index f2a7663..2cf3090 100644 --- a/src/services/Carts.php +++ b/src/services/Carts.php @@ -358,7 +358,7 @@ public function markCartAsRecovered(Order $order): void } } - public function restoreCart(Order $order): void + public function restoreCart(Order $order): bool { if ($cart = $this->getCartByOrderId($order->id)) { $expiry = AbandonedCart::$plugin->getSettings()->getRestoreExpiryHours();