From 6f99d680d69c5f325a8a071cb2c2c044648a85d8 Mon Sep 17 00:00:00 2001 From: Thomas Templeton Date: Sat, 6 Apr 2024 14:43:48 +1100 Subject: [PATCH] Craft 5 compatibility --- CHANGELOG.md | 11 +++++++++++ README.md | 3 +-- composer.json | 5 ++--- src/Service.php | 2 +- src/controllers/ReorderController.php | 2 +- src/enums/LineItemStatus.php | 20 ++++++++++---------- src/enums/OrderStatus.php | 12 ++++++------ 7 files changed, 32 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d490e57..c781fb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## Unreleased + +### Added +- Added Craft 5 / Craft Commerce 5 compatibility + +### Changed +- `spicyweb\reorder\enums\LineItemStatus` and `spicyweb\reorder\enums\OrderStatus` are now proper enums, rather than abstract classes + +### Removed +- Removed Craft 4 / Craft Commerce 4 compatibility + ## 2.0.1 - 2024-01-09 ### Fixed diff --git a/README.md b/README.md index d73734d..9657f8b 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,7 @@ ReOrder makes it easy to allow users to quickly replicate an old order's line it ## Requirements -- Craft CMS 4.0.0 or later -- Craft Commerce 4.0.0 or later +- ReOrder 3.x requires Craft CMS 5 and Craft Commerce 5. ## Installation diff --git a/composer.json b/composer.json index 3ac0a7e..748311b 100644 --- a/composer.json +++ b/composer.json @@ -15,9 +15,8 @@ "issues": "https://github.com/spicywebau/craft-reorder/issues" }, "require": { - "craftcms/cms": "^4.0.0", - "craftcms/commerce": "^4.0.0", - "php": "^8.0.2" + "craftcms/cms": "^5.0.0", + "craftcms/commerce": "^5.0.0-beta.1" }, "autoload": { "psr-4": { diff --git a/src/Service.php b/src/Service.php index 2da46fe..74a20fb 100644 --- a/src/Service.php +++ b/src/Service.php @@ -166,7 +166,7 @@ public function hasAvailableLineItems(Order $order, ?Order $cart = null, ?array * @param Order|null $cart A cart, to check for the quantity of items already in the user's cart. * @return string The line item status. */ - private function _getLineItemStatus(LineItem $lineItem, ?Order $cart = null): string + private function _getLineItemStatus(LineItem $lineItem, ?Order $cart = null): LineItemStatus { $commerce = Commerce::getInstance(); $purchasable = $lineItem->getPurchasable(); diff --git a/src/controllers/ReorderController.php b/src/controllers/ReorderController.php index 32a4bec..b4835d4 100644 --- a/src/controllers/ReorderController.php +++ b/src/controllers/ReorderController.php @@ -92,7 +92,7 @@ public function actionIndex(): ?Response } if ($error !== null) { - $translatedError = Craft::t('reorder', $error); + $translatedError = Craft::t('reorder', $error->value); if ($isAjaxRequest) { return $this->asJson([ diff --git a/src/enums/LineItemStatus.php b/src/enums/LineItemStatus.php index 94dca90..9b6138b 100644 --- a/src/enums/LineItemStatus.php +++ b/src/enums/LineItemStatus.php @@ -3,19 +3,19 @@ namespace spicyweb\reorder\enums; /** - * Class LineItemStatus + * Line item status enum * * @package spicyweb\reorder\enums * @author Spicy Web - * @since 1.0.0 + * @since 3.0.0 */ -abstract class LineItemStatus +enum LineItemStatus { - public const Available = 'Available'; - public const Deleted = 'Deleted'; - public const Disabled = 'Disabled'; - public const BelowMinQty = 'BelowMinQty'; - public const AboveMaxQty = 'AboveMaxQty'; - public const InsufficientStock = 'InsufficientStock'; - public const OutOfStock = 'OutOfStock'; + case Available; + case Deleted; + case Disabled; + case BelowMinQty; + case AboveMaxQty; + case InsufficientStock; + case OutOfStock; } diff --git a/src/enums/OrderStatus.php b/src/enums/OrderStatus.php index a3b4129..76ab61f 100644 --- a/src/enums/OrderStatus.php +++ b/src/enums/OrderStatus.php @@ -3,15 +3,15 @@ namespace spicyweb\reorder\enums; /** - * Class OrderStatus + * Order status enum * * @package spicyweb\reorder\enums * @author Spicy Web - * @since 1.0.0 + * @since 3.0.0 */ -abstract class OrderStatus +enum OrderStatus: string { - public const DoesNotExist = 'The order does not exist'; - public const Partial = 'Some items are not available'; - public const NoItemsAvailable = 'No items available'; + case DoesNotExist = 'The order does not exist'; + case Partial = 'Some items are not available'; + case NoItemsAvailable = 'No items available'; }