During the last days we received a huge number of new users. Normally, we are happy about this - but these users were no "real" users. We received about 50 new registered users per hour, which was really annoying, because they obviously were no new customers. They were registered by (i guess) script kiddies. I really don't like "captchas", because the only annoy the real user. So we had to find another way.
If you also have this kind of "users" and your shop only needs the registration during the checkout (like vm-expert.com), you may find the following solution helpful (though it needs a hack):
search for "function register_save()" (without the quotes) in both files. You will find the function blocks. Put the following line AFTER the "global $mainframe...." line:
if(!$_SESSION['cart']['idx']) $mainframe->redirect('/index.php','You can only register during checkout!');
This will prevent the user-registration if the cart is empty and redirect the user to the homepage showing the message "You can only register during checkout".
Additionally, you can overwrite the joomla register template to deactivate it. Just create a new directory under your active template root in the html-directory: com_user/register. Put a file called default.php in the register-directory and write a kind message that you only allow registration during the checkout. You can see our example when you click on "create an account" below the login fields at the top of the page.
After these changes, the spam registrations stopped immediately and as i tested on my own, the registration for real customers (with something in the cart) still worked. Let me know, if you discover any problems...
VM-Expert.com is part of the B01 Consulting Network. Since 2003 we build shops and websites with Joomla and Virtuemart. We are specialised in developing custom Joomla and Virtuemart Extensions.