Vinai / customer-activation

Magento extension which makes it impossible for a customer to log in until the account has been activated by the administrator.
120 stars 59 forks source link

it doesn't work #90

Open LouNik1984 opened 8 years ago

LouNik1984 commented 8 years ago

What I need:

members of a specific group cannot login directly after registration, they need to be confirmed first. Other groups (such as general) can login directly.

What I did after installing this extension:

I set 'require activation for specific groups only' to yes and chose the group I need to be confirmed, 'Activate new Customer Accounts by Default' to no. I also set email notifications both for admin and customer. Then I created a new account from frontend and:

So, is the extension not working or do I fail to understand how to set it properly?

Vinai commented 8 years ago

I think the settings you describe are correct. I don't have the time to check myself at the moment, but the code in question can be found in \Netzarbeiter_CustomerActivation_Helper_Data::getDefaultActivationStatus() in the file `htdocs/.modman/customeractivation/app/code/community/Netzarbeiter/CustomerActivation/Helper/Data.php´.

Here it is:

    public function getDefaultActivationStatus($groupId, $storeId)
    {
        $defaultIsActive = Mage::getStoreConfig(self::XML_PATH_DEFAULT_STATUS, $storeId);
        $activateByGroup = Mage::getStoreConfig(self::XML_PATH_DEFAULT_STATUS_BY_GROUP, $storeId);

        if (! $defaultIsActive && $activateByGroup) {
            $notActiveGroups = explode(',', Mage::getStoreConfig(self::XML_PATH_DEFAULT_STATUS_GROUPS, $storeId));
            $isActive = in_array($groupId, $notActiveGroups) ? false : true;
        } else {
            $isActive = $defaultIsActive;
        }

        return $isActive;
    }

I suggest you add some Mage::log(['defaultIsActive' => $defaultIsActive, 'activateByGroup' => $activateByGroup, 'isActive' => $isActive]) statements to see what is going on in var/log/system.log.