From 8147ea20bb50a7310f826cf20dd485f985ab5dd1 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Tue, 27 Feb 2024 15:21:00 +0100 Subject: [PATCH 1/7] Refactor installation and uninstallation logic and behaviour ISSUE: CS-5073, CS-5107 --- src/adyenofficial.php | 45 ++++-- src/classes/Utility/Installer.php | 245 ++++++++++++++++++------------ src/upgrade/upgrade-5.0.0.php | 58 ++++--- src/upgrade/upgrade-5.1.9.php | 13 +- 4 files changed, 224 insertions(+), 137 deletions(-) diff --git a/src/adyenofficial.php b/src/adyenofficial.php index 63302398..bae6f8d4 100755 --- a/src/adyenofficial.php +++ b/src/adyenofficial.php @@ -78,13 +78,15 @@ public function getContext() public function install(): bool { try { - return ( - parent::install() && - $this->getInstaller()->install() - ); - } catch (Exception $e) { - \Adyen\Core\Infrastructure\Logger\Logger::logError( - 'error ' . $e->getMessage() . ' trace ' . $e->getTraceAsString() + $success = parent::install(); + $success && $this->getInstaller()->install(); + + return $success; + } catch (Throwable $e) { + $this->_errors[] = $e->getMessage(); + \PrestaShopLogger::addLog( + 'Adyen plugin installation failed. Error: ' . $e->getMessage() . ' . Trace: ' . $e->getTraceAsString(), + \PrestaShopLogger::LOG_SEVERITY_LEVEL_ERROR ); return false; @@ -95,15 +97,24 @@ public function install(): bool * Handle plugin uninstallation. * * @return bool - * - * @throws \Adyen\Core\Infrastructure\ORM\Exceptions\RepositoryClassException */ public function uninstall(): bool { - return ( - parent::uninstall() && - $this->getInstaller()->uninstall() - ); + try { + $success = parent::uninstall(); + $success && $this->getInstaller()->uninstall(); + + return $success; + } catch (Throwable $e) { + $this->_errors[] = $e->getMessage(); + \PrestaShopLogger::addLog( + 'Adyen plugin uninstallation failed. Error: ' . $e->getMessage() . ' . Trace: ' . $e->getTraceAsString( + ), + \PrestaShopLogger::LOG_SEVERITY_LEVEL_ERROR + ); + + return false; + } } /** @@ -117,8 +128,10 @@ public function uninstall(): bool public function enable($force_all = false): bool { $this->installOverrides(); + $success = parent::enable($force_all); + $success && $this->getInstaller()->activateCustomOrderStates(); - return parent::enable($force_all) && $this->getInstaller()->activateCustomOrderStates(); + return $success; } /** @@ -132,8 +145,10 @@ public function enable($force_all = false): bool public function disable($force_all = false): bool { $this->uninstallOverrides(); + $success = parent::disable($force_all); + $success && $this->getInstaller()->deactivateCustomOrderStates(); - return parent::disable($force_all) && $this->getInstaller()->deactivateCustomOrderStates(); + return $success; } /** diff --git a/src/classes/Utility/Installer.php b/src/classes/Utility/Installer.php index 0014ab06..58d4b7fe 100755 --- a/src/classes/Utility/Installer.php +++ b/src/classes/Utility/Installer.php @@ -116,46 +116,42 @@ public function __construct(AdyenOfficial $module) * Initializes plugin. * Creates database tables, adds admin controllers, hooks, order states and initializes configuration values. * - * @return bool Installation status + * @return void * * @throws RepositoryClassException * @throws PrestaShopException - * @throws \PrestaShopDatabaseException + * @throws PrestaShopDatabaseException + * @throws Exception */ - public function install(): bool + public function install(): void { Bootstrap::init(); - return ( - $this->createTables() && - $this->addControllers() && - $this->addHooks() && - $this->activateCustomOrderStates() - ); + $this->createTables(); + $this->addControllers(); + $this->addHooks(); + $this->activateCustomOrderStates(); } /** * Drop database tables, remove hooks, controller, order states and configuration values * - * @return bool Uninstallation status + * @return void * * @throws RepositoryClassException * * @throws Exception */ - public function uninstall(): bool + public function uninstall(): void { Bootstrap::init(); $this->removeImages(); ImageHandler::removeAdyenDirectory(); $this->disconnect(); - - return ( - $this->dropTables() && - $this->removeControllers() && - $this->removeHooks() && - $this->deactivateCustomOrderStates() - ); + $this->dropTables(); + $this->removeControllers(); + $this->removeHooks(); + $this->deactivateCustomOrderStates(); } /** @@ -171,34 +167,37 @@ public function shouldInstallOverrides(): bool /** * Removes Admin controllers. * - * @return bool Controller deletion status + * @return void Controller deletion status + * + * @throws PrestaShopException + * @throws Exception */ - public function removeControllers(): bool + public function removeControllers(): void { - try { - $tabs = Tab::getCollectionFromModule($this->module->name); - if ($tabs && count($tabs)) { - foreach ($tabs as $tab) { - $tab->delete(); + /** @var Tab[] $tabs */ + $tabs = Tab::getCollectionFromModule($this->module->name); + if ($tabs && count($tabs)) { + foreach ($tabs as $tab) { + $success = $tab->delete(); + + if (!$success) { + throw new Exception('Adyen plugin failed to remove controller: ' . $tab->name); } } - - return true; - } catch (PrestaShopException $exception) { - Logger::logError('Error removing controller! Error: ' . $exception->getMessage()); - - return false; } } /** * Adds controllers and hooks. * - * @return bool + * @return void + * + * @throws Exception */ - public function addControllersAndHooks(): bool + public function addControllersAndHooks(): void { - return $this->addHooks() && $this->addControllers(); + $this->addHooks(); + $this->addControllers(); } /** @@ -207,36 +206,36 @@ public function addControllersAndHooks(): bool * @throws PrestaShopDatabaseException * @throws PrestaShopException */ - public function deactivateCustomOrderStates(): bool + public function deactivateCustomOrderStates(): void { - return $this->deactivateCustomOrderState(self::PENDING_STATE) - && $this->deactivateCustomOrderState(self::PARTIALLY_REFUNDED_STATE) - && $this->deactivateCustomOrderState(self::CHARGEBACK_STATE); + $this->deactivateCustomOrderState(self::PENDING_STATE); + $this->deactivateCustomOrderState(self::PARTIALLY_REFUNDED_STATE); + $this->deactivateCustomOrderState(self::CHARGEBACK_STATE); } /** - * @return bool + * @return void * * @throws PrestaShopDatabaseException * @throws PrestaShopException */ - public function deactivateOldCustomOrderStates(): bool + public function deactivateOldCustomOrderStates(): void { - return $this->deactivateCustomOrderState(self::WAITING_FOR_PAYMENT_STATE) - && $this->deactivateCustomOrderState(self::PAYMENT_NEEDS_ATTENTION_STATE); + $this->deactivateCustomOrderState(self::WAITING_FOR_PAYMENT_STATE); + $this->deactivateCustomOrderState(self::PAYMENT_NEEDS_ATTENTION_STATE); } /** - * @return bool + * @return void * - * @throws PrestaShopException * @throws PrestaShopDatabaseException + * @throws PrestaShopException */ - public function activateCustomOrderStates(): bool + public function activateCustomOrderStates(): void { - return $this->addCustomOrderState(self::PENDING_STATE, '#4169E1') - && $this->addCustomOrderState(self::PARTIALLY_REFUNDED_STATE, '#6F8C9F') - && $this->addCustomOrderState(self::CHARGEBACK_STATE, '#E74C3C'); + $this->addCustomOrderState(self::PENDING_STATE, '#4169E1'); + $this->addCustomOrderState(self::PARTIALLY_REFUNDED_STATE, '#6F8C9F'); + $this->addCustomOrderState(self::CHARGEBACK_STATE, '#E74C3C'); } /** @@ -302,32 +301,49 @@ private function doRemoveImages(): void /** * Create database tables for Adyen. + * If creation fails Exception is thrown. * - * @return bool Table creation status + * @return void + * + * @throws Exception */ - private function createTables(): bool + private function createTables(): void { - return ( - DatabaseHandler::createTable(self::ADYEN_ENTITY, 9) && - DatabaseHandler::createTable(self::ADYEN_NOTIFICATIONS, 5) && - DatabaseHandler::createTable(self::ADYEN_TRANSACTION_LOG, 4) && - DatabaseHandler::createTable(self::ADYEN_QUEUE, 9) - ); + $this->createTable(self::ADYEN_ENTITY, 9); + $this->createTable(self::ADYEN_NOTIFICATIONS, 5); + $this->createTable(self::ADYEN_TRANSACTION_LOG, 4); + $this->createTable(self::ADYEN_QUEUE, 9); + } + + /** + * @param string $tableName + * @param int $indexNumber + * + * @return void + * + * @throws Exception + */ + private function createTable(string $tableName, int $indexNumber): void + { + $createdTable = DatabaseHandler::createTable($tableName, $indexNumber); + + if (!$createdTable) { + throw new Exception('Adyen plugin failed to create table: ' . $tableName); + } } /** * Registers module Admin controllers. * - * @return bool Controller addition status + * @return void + * + * @throws Exception */ - private function addControllers(): bool + private function addControllers(): void { - $result = true; foreach (self::$controllers as $controller) { - $result = $result && $this->addController($controller); + $this->addController($controller); } - - return $result; } /** @@ -336,9 +352,11 @@ private function addControllers(): bool * @param string $name Controller name * @param int $parentId ID of parent controller * - * @return bool Controller addition status + * @return void + * + * @throws Exception */ - private function addController(string $name, int $parentId = -1): bool + private function addController(string $name, int $parentId = -1): void { $tab = new Tab(); @@ -347,9 +365,11 @@ private function addController(string $name, int $parentId = -1): bool $tab->class_name = $name; $tab->module = $this->module->name; $tab->id_parent = $parentId; - $tab->add(); + $success = $tab->add(); - return true; + if (!$success) { + throw new Exception('Adyen plugin failed to register controller: ' . $name); + } } /** @@ -368,21 +388,25 @@ private function call(callable $handler, string $arg) /** * Registers module hooks. * - * @return bool Hook addition status + * @return void + * + * @throws Exception */ - private function addHooks(): bool + private function addHooks(): void { - $result = true; - foreach (self::$deprecated_hooks as $hook) { - $result = $result && $this->module->unregisterHook($hook); + $result = $this->module->unregisterHook($hook); + if (!$result) { + throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); + } } foreach (array_merge(self::$hooks, $this->getVersionHandler()->hooks()) as $hook) { - $result = $result && $this->module->registerHook($hook); + $result = $this->module->registerHook($hook); + if (!$result) { + throw new Exception('Adyen plugin failed to register hook: ' . $hook); + } } - - return $result; } /** @@ -395,8 +419,9 @@ private function addHooks(): bool * * @throws PrestaShopException * @throws PrestaShopDatabaseException + * @throws Exception */ - private function addCustomOrderState(string $name, string $color): bool + private function addCustomOrderState(string $name, string $color): void { $statusId = $this->getAllPrestaShopStatuses()[$name] ?? null; @@ -404,7 +429,12 @@ private function addCustomOrderState(string $name, string $color): bool $orderState = new OrderState($statusId); $orderState->deleted = false; - return $orderState->update(); + $success = $orderState->update(); + if (!$success) { + throw new Exception('Adyen plugin failed to delete order state: ' . $name); + } + + return; } $orderState = new OrderState(); @@ -425,7 +455,9 @@ private function addCustomOrderState(string $name, string $color): bool self::$allPrestaShopStatuses[$name] = (string)$orderState->id; } - return $success; + if (!$success) { + throw new Exception('Adyen plugin failed to add order state: ' . $name); + } } /** @@ -435,13 +467,14 @@ private function addCustomOrderState(string $name, string $color): bool * * @throws PrestaShopException * @throws PrestaShopDatabaseException + * @throws Exception */ - private function deactivateCustomOrderState(string $name): bool + private function deactivateCustomOrderState(string $name): void { $statusId = $this->getAllPrestaShopStatuses()[$name] ?? null; if (!$statusId) { - return true; + return; } $orderState = new OrderState($statusId); @@ -449,40 +482,60 @@ private function deactivateCustomOrderState(string $name): bool if ($orderState->module_name === $this->module->name) { $orderState->deleted = true; - return $orderState->update(); - } + $success = $orderState->update(); - return true; + if (!$success) { + throw new Exception('Adyen plugin failed to delete order state: ' . $name); + } + } } /** * Drop database tables for Adyen. * - * @return bool Table deletion status + * @return void + * + * @throws Exception */ - private function dropTables(): bool + private function dropTables(): void { - return ( - DatabaseHandler::dropTable(self::ADYEN_ENTITY) && - DatabaseHandler::dropTable(self::ADYEN_NOTIFICATIONS) && - DatabaseHandler::dropTable(self::ADYEN_TRANSACTION_LOG) && - DatabaseHandler::dropTable(self::ADYEN_QUEUE) - ); + $this->dropTable(self::ADYEN_ENTITY); + $this->dropTable(self::ADYEN_NOTIFICATIONS); + $this->dropTable(self::ADYEN_TRANSACTION_LOG); + $this->dropTable(self::ADYEN_QUEUE); + } + + /** + * @param string $tableName + * + * @return void + * + * @throws Exception + */ + private function dropTable(string $tableName): void + { + $createdTable = DatabaseHandler::dropTable($tableName); + + if (!$createdTable) { + throw new Exception('Adyen plugin failed to drop table: ' . $tableName); + } } /** * Unregisters module hooks. * - * @return bool Hook deletion status + * @return void + * + * @throws Exception */ - private function removeHooks(): bool + private function removeHooks(): void { - $result = true; foreach (array_merge(self::$hooks, $this->getVersionHandler()->hooks()) as $hook) { - $result = $result && $this->module->unregisterHook($hook); + $result = $this->module->unregisterHook($hook); + if (!$result) { + throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); + } } - - return $result; } /** diff --git a/src/upgrade/upgrade-5.0.0.php b/src/upgrade/upgrade-5.0.0.php index 195e86d6..6eae50a8 100644 --- a/src/upgrade/upgrade-5.0.0.php +++ b/src/upgrade/upgrade-5.0.0.php @@ -55,18 +55,21 @@ function upgrade_module_5_0_0(AdyenOfficial $module): bool $installer = new \AdyenPayment\Classes\Utility\Installer($module); Bootstrap::init(); + try { + $installer->install(); + + Logger::logDebug('Upgrade to plugin v5.0.0 has started.'); + $installer->removeControllers(); + removeHooks($module); + removeObsoleteFiles($module); + + $installer->addControllersAndHooks(); + } catch (Throwable $exception) { + Logger::logError( + 'Adyen plugin migration to 5.0.0 failed. Reason: ' . + $exception->getMessage() . ' .Trace: ' . $exception->getTraceAsString() + ); - if (!$installer->install()) { - return false; - } - - Logger::logDebug('Upgrade to plugin v5.0.0 has started.'); - - $installer->removeControllers(); - removeHooks($module); - removeObsoleteFiles($module); - - if (!$installer->addControllersAndHooks()) { return false; } @@ -194,10 +197,12 @@ function migratePaymentMethodConfigs(array $migratedShops) continue; } - $paymentMethod->setAdditionalData(new GooglePay( - $googleMerchantId, - $settings->getActiveConnectionData()->getMerchantId() - )); + $paymentMethod->setAdditionalData( + new GooglePay( + $googleMerchantId, + $settings->getActiveConnectionData()->getMerchantId() + ) + ); } $paymentService->saveMethodConfiguration($paymentMethod); @@ -283,8 +288,10 @@ function initializeConnection(string $storeId, ConnectionSettings $connectionSet getConnectionSettingsRepository()->setConnectionSettings($connectionSettings); getConnectionService()->saveConnectionData($connectionSettings); } catch (Exception $e) { - Logger::logWarning('Migration of connection settings failed for store ' . $storeId - . ' because ' . $e->getMessage()); + Logger::logWarning( + 'Migration of connection settings failed for store ' . $storeId + . ' because ' . $e->getMessage() + ); if ($connectionSettings->getMode() === Mode::MODE_LIVE) { $settings = new ConnectionSettings( @@ -332,12 +339,14 @@ function getTestData(string $storeId, string $merchantAccount, $testApiKey): ?Co return null; } - $testApiCredentials = getApiCredentialsFor(new ConnectionSettings( - $storeId, - Mode::MODE_TEST, - new ConnectionData($testApiKey, $merchantAccount), - null - )); + $testApiCredentials = getApiCredentialsFor( + new ConnectionSettings( + $storeId, + Mode::MODE_TEST, + new ConnectionData($testApiKey, $merchantAccount), + null + ) + ); if (!$testApiCredentials) { return null; @@ -370,8 +379,7 @@ function getLiveData( string $merchantAccount, string $liveApiKey, string $liveUrlPrefix -): ?ConnectionData -{ +): ?ConnectionData { if (empty($liveApiKey) || empty($liveUrlPrefix)) { return null; } diff --git a/src/upgrade/upgrade-5.1.9.php b/src/upgrade/upgrade-5.1.9.php index f6fc6898..101e8267 100644 --- a/src/upgrade/upgrade-5.1.9.php +++ b/src/upgrade/upgrade-5.1.9.php @@ -1,5 +1,6 @@ deactivateOldCustomOrderStates(); + } catch (Throwable $exception) { + Logger::logError( + 'Adyen plugin migration to 5.1.9 failed. Reason: ' . + $exception->getMessage() . ' .Trace: ' . $exception->getTraceAsString() + ); - return $installer->deactivateOldCustomOrderStates(); + return false; + } + + return true; } From 3fe08581f1a7621be5a508ea1d806cbce9184696 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Fri, 1 Mar 2024 16:02:24 +0100 Subject: [PATCH 2/7] Delete necessary data in readme --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 6c27540d..98243227 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,6 @@ Read our [**contribution guidelines**](CONTRIBUTING.md) to find out how. ## Requirements This plugin supports PrestaShop versions 1.7.5.0 to 8.1.3. -### Current Checkout API version -##### v69 -### Current Checkout Component version: -##### 5.31.1 - ## Documentation Please find the relevant documentation for - [How to start with Adyen](https://www.adyen.com/get-started) From 31f2be6e1f5720a04846313a16069be25c758e16 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Fri, 1 Mar 2024 16:59:19 +0100 Subject: [PATCH 3/7] Modify unregistering hook logic when installing and uninstalling module ISSUE: CS-5073 --- src/classes/Utility/Installer.php | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/classes/Utility/Installer.php b/src/classes/Utility/Installer.php index 58d4b7fe..156cc64a 100755 --- a/src/classes/Utility/Installer.php +++ b/src/classes/Utility/Installer.php @@ -150,7 +150,6 @@ public function uninstall(): void $this->disconnect(); $this->dropTables(); $this->removeControllers(); - $this->removeHooks(); $this->deactivateCustomOrderStates(); } @@ -395,9 +394,11 @@ private function call(callable $handler, string $arg) private function addHooks(): void { foreach (self::$deprecated_hooks as $hook) { - $result = $this->module->unregisterHook($hook); - if (!$result) { - throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); + if ($this->module->isRegisteredInHook($hook)) { + $result = $this->module->unregisterHook($hook); + if (!$result) { + throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); + } } } @@ -521,23 +522,6 @@ private function dropTable(string $tableName): void } } - /** - * Unregisters module hooks. - * - * @return void - * - * @throws Exception - */ - private function removeHooks(): void - { - foreach (array_merge(self::$hooks, $this->getVersionHandler()->hooks()) as $hook) { - $result = $this->module->unregisterHook($hook); - if (!$result) { - throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); - } - } - } - /** * @return StoreService */ From 191a27478af0c5ea5a117a5fa25865a6047509e0 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Fri, 1 Mar 2024 16:02:24 +0100 Subject: [PATCH 4/7] Delete unnecessary data in readme --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 6c27540d..98243227 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,6 @@ Read our [**contribution guidelines**](CONTRIBUTING.md) to find out how. ## Requirements This plugin supports PrestaShop versions 1.7.5.0 to 8.1.3. -### Current Checkout API version -##### v69 -### Current Checkout Component version: -##### 5.31.1 - ## Documentation Please find the relevant documentation for - [How to start with Adyen](https://www.adyen.com/get-started) From f4ab6368128497d15e5d914aa71f2fbbf9f19ce7 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Fri, 1 Mar 2024 16:59:19 +0100 Subject: [PATCH 5/7] Modify unregistering hook logic when installing and uninstalling module ISSUE: CS-5073 --- src/classes/Utility/Installer.php | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/classes/Utility/Installer.php b/src/classes/Utility/Installer.php index 58d4b7fe..156cc64a 100755 --- a/src/classes/Utility/Installer.php +++ b/src/classes/Utility/Installer.php @@ -150,7 +150,6 @@ public function uninstall(): void $this->disconnect(); $this->dropTables(); $this->removeControllers(); - $this->removeHooks(); $this->deactivateCustomOrderStates(); } @@ -395,9 +394,11 @@ private function call(callable $handler, string $arg) private function addHooks(): void { foreach (self::$deprecated_hooks as $hook) { - $result = $this->module->unregisterHook($hook); - if (!$result) { - throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); + if ($this->module->isRegisteredInHook($hook)) { + $result = $this->module->unregisterHook($hook); + if (!$result) { + throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); + } } } @@ -521,23 +522,6 @@ private function dropTable(string $tableName): void } } - /** - * Unregisters module hooks. - * - * @return void - * - * @throws Exception - */ - private function removeHooks(): void - { - foreach (array_merge(self::$hooks, $this->getVersionHandler()->hooks()) as $hook) { - $result = $this->module->unregisterHook($hook); - if (!$result) { - throw new Exception('Adyen plugin failed to unregister hook: ' . $hook); - } - } - } - /** * @return StoreService */ From 17486b9034a5537c6ba096b0a976460c1e078930 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Mon, 4 Mar 2024 11:22:24 +0100 Subject: [PATCH 6/7] Update core version to 1.1.10 --- src/composer.json | 2 +- src/composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/composer.json b/src/composer.json index 66d9bfef..143d6469 100755 --- a/src/composer.json +++ b/src/composer.json @@ -40,7 +40,7 @@ "php": "^7.2|^7.4|^8.0", "ext-json": "*", "ext-zip": "*", - "adyen/integration-core": "1.1.9", + "adyen/integration-core": "1.1.10", "ext-simplexml": "*", "ext-openssl": "*" }, diff --git a/src/composer.lock b/src/composer.lock index 32e52c99..1c6f2bee 100755 --- a/src/composer.lock +++ b/src/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6aeb011649006d021b3c3a8ccf99a4bc", + "content-hash": "6519a9cfd4eb660173cf3abdfe7da743", "packages": [ { "name": "adyen/integration-core", - "version": "1.1.9", + "version": "1.1.10", "source": { "type": "git", "url": "git@github.com:Adyen/adyen-php-plugin-core.git", - "reference": "275f246045b0d394517f39de8f48bfe2f02ce59c" + "reference": "9db1cc16a1ab4cec77c37c6bc6fcd5278a892ef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Adyen/adyen-php-plugin-core/zipball/275f246045b0d394517f39de8f48bfe2f02ce59c", - "reference": "275f246045b0d394517f39de8f48bfe2f02ce59c", + "url": "https://api.github.com/repos/Adyen/adyen-php-plugin-core/zipball/9db1cc16a1ab4cec77c37c6bc6fcd5278a892ef8", + "reference": "9db1cc16a1ab4cec77c37c6bc6fcd5278a892ef8", "shasum": "" }, "require": { @@ -48,7 +48,7 @@ "proprietary" ], "description": "Core Adyen integration library", - "time": "2024-02-26T09:50:59+00:00" + "time": "2024-03-04T08:50:06+00:00" }, { "name": "adyen/php-webhook-module", From 08035273aef0b442c3fd6142fc643e0426f7d849 Mon Sep 17 00:00:00 2001 From: Aleksandar Sasa Boljanovic Date: Mon, 4 Mar 2024 11:24:15 +0100 Subject: [PATCH 7/7] Release version 5.1.10 --- src/adyenofficial.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/adyenofficial.php b/src/adyenofficial.php index bae6f8d4..b8ca577f 100755 --- a/src/adyenofficial.php +++ b/src/adyenofficial.php @@ -46,7 +46,7 @@ public function __construct() { $this->name = 'adyenofficial'; $this->tab = 'payments_gateways'; - $this->version = '5.1.9'; + $this->version = '5.1.10'; $this->author = $this->l('Adyen'); $this->need_instance = 0;