diff --git a/app/code/core/Mage/Checkout/Helper/Data.php b/app/code/core/Mage/Checkout/Helper/Data.php index 007bbda22..a476a671f 100644 --- a/app/code/core/Mage/Checkout/Helper/Data.php +++ b/app/code/core/Mage/Checkout/Helper/Data.php @@ -19,6 +19,9 @@ class Mage_Checkout_Helper_Data extends Mage_Core_Helper_Abstract { public const XML_PATH_GUEST_CHECKOUT = 'checkout/options/guest_checkout'; + public const XML_PATH_REDIRECT_REGISTER = 'checkout/options/redirect_register'; + + /** @deprecated 24.11.0 use XML_PATH_REDIRECT_REGISTER instead */ public const XML_PATH_CUSTOMER_MUST_BE_LOGGED = 'checkout/options/customer_must_be_logged'; protected $_moduleName = 'Mage_Checkout'; @@ -330,14 +333,21 @@ public function isContextCheckout() return (Mage::app()->getRequest()->getParam('context') == 'checkout'); } + /** + * Check if we should redirect the user to a separate register step during checkout + */ + public function isRedirectRegisterStep(): bool + { + return Mage::getStoreConfigFlag(self::XML_PATH_REDIRECT_REGISTER); + } + /** * Check if user must be logged during checkout process - * - * @return bool + * @deprecated 24.11.0 use isRedirectRegisterStep() instead */ - public function isCustomerMustBeLogged() + public function isCustomerMustBeLogged(): bool { - return Mage::getStoreConfigFlag(self::XML_PATH_CUSTOMER_MUST_BE_LOGGED); + return $this->isRedirectRegisterStep(); } public function isPersistentEnabled(): bool diff --git a/app/code/core/Mage/Checkout/Model/Type/Onepage.php b/app/code/core/Mage/Checkout/Model/Type/Onepage.php index 36d795fa4..86520354e 100644 --- a/app/code/core/Mage/Checkout/Model/Type/Onepage.php +++ b/app/code/core/Mage/Checkout/Model/Type/Onepage.php @@ -190,17 +190,6 @@ public function getCheckoutMethod() return $this->getQuote()->getCheckoutMethod(); } - /** - * Get quote checkout method - * - * @deprecated since 1.4.0.1 - * @return string - */ - public function getCheckoutMehod() - { - return $this->getCheckoutMethod(); - } - /** * Specify checkout method * diff --git a/app/code/core/Mage/Checkout/controllers/OnepageController.php b/app/code/core/Mage/Checkout/controllers/OnepageController.php index 1193aad01..3c80324c5 100644 --- a/app/code/core/Mage/Checkout/controllers/OnepageController.php +++ b/app/code/core/Mage/Checkout/controllers/OnepageController.php @@ -664,7 +664,7 @@ protected function _canShowForUnregisteredUsers() return Mage::getSingleton('customer/session')->isLoggedIn() || $this->getRequest()->getActionName() == 'index' || Mage::helper('checkout')->isAllowedGuestCheckout($this->getOnepage()->getQuote()) - || !Mage::helper('checkout')->isCustomerMustBeLogged(); + || !Mage::helper('checkout')->isRedirectRegisterStep(); } /** diff --git a/app/code/core/Mage/Checkout/etc/system.xml b/app/code/core/Mage/Checkout/etc/system.xml index 11ea7f132..7039a0e8c 100644 --- a/app/code/core/Mage/Checkout/etc/system.xml +++ b/app/code/core/Mage/Checkout/etc/system.xml @@ -7,6 +7,7 @@ * @package Mage_Checkout * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://magento.com) * @copyright Copyright (c) 2017-2023 The OpenMage Contributors (https://openmage.org) + * @copyright Copyright (c) 2024 Maho (https://mahocommerce.com) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ --> @@ -45,16 +46,16 @@ 1 1 - - + + + Note: If email confirmation is required, users won't be able to complete the order before confirming their email."]]> select adminhtml/system_config_source_yesno - 0 15 1 1 - 0 - + 1 + select diff --git a/app/code/core/Mage/Checkout/sql/maho_setup/maho-24.10.0.php b/app/code/core/Mage/Checkout/sql/maho_setup/maho-24.10.0.php new file mode 100644 index 000000000..374624bb4 --- /dev/null +++ b/app/code/core/Mage/Checkout/sql/maho_setup/maho-24.10.0.php @@ -0,0 +1,30 @@ +getWebsites(true) as $website) { + $configValue = !$website->getConfig(XML_PATH_GUEST_CHECKOUT) && $website->getConfig(XML_PATH_CUSTOMER_MUST_BE_LOGGED); + if ($website->getId() === 0) { + $defaultConfigValue = $configValue; + $this->setConfigData(XML_PATH_REDIRECT_REGISTER, $configValue); + } elseif ($configValue !== $defaultConfigValue) { + $this->setConfigData(XML_PATH_REDIRECT_REGISTER, true, 'websites', $website->getId()); + } +} + +$installer->endSetup(); diff --git a/app/design/frontend/base/default/template/checkout/onepage/login.phtml b/app/design/frontend/base/default/template/checkout/onepage/login.phtml index 3116d5d59..c4cded8dc 100644 --- a/app/design/frontend/base/default/template/checkout/onepage/login.phtml +++ b/app/design/frontend/base/default/template/checkout/onepage/login.phtml @@ -19,8 +19,8 @@ ?> helper('customer')->isRegistrationAllowed(); +$isRedirectRegisterStep = $this->helper('checkout')->isRedirectRegisterStep(); $isAllowedGuestCheckout = $this->helper('checkout')->isAllowedGuestCheckout($this->getQuote()); -$isCustomerMustBeLogged = $this->helper('checkout')->isCustomerMustBeLogged(); $isPersistentEnabled = $this->helper('checkout')->isPersistentEnabled(); ?> @@ -59,17 +59,9 @@ $isPersistentEnabled = $this->helper('checkout')->isPersistentEnabled();

 

- - - - - -
- -
- - - +
@@ -105,13 +97,14 @@ $isPersistentEnabled = $this->helper('checkout')->isPersistentEnabled();
- +
getRequest()->getParam('register') ?>