Yes, Virtuemart can intergrate with SecurityImages, but that extension is really bloated to me. So, I tried my own way.
If you have time, please check my mod (for VM1.1 and J1.5):
1. Install my extensions: com_tincaptcha and plg_tincaptcha.
(
Joomla Extension )
Remember to active the plugin. You can change some settings with it.
2. FILE: administrator\components\com_virtuemart\html\admin.user_field_form.php
LINE 81:if( file_exists($mosConfig_absolute_path.'/administrator/components/com_securityimages/client.php')) {
REPLACE WITH:
if (JPluginHelper::isEnabled('system', 'tincaptcha')) { // tincaptcha
3. FILE: administrator\components\com_virtuemart\classes\ps_userfield.php
LINE 429: if (file_exists($mosConfig_absolute_path.'/administrator/components/com_securityimages/client.php')) {
include ($mosConfig_absolute_path.'/administrator/components/com_securityimages/client.php');
// Note that this package name must be used on the validation site too! If both are not equal, validation will fail
$packageName = 'securityVMRegistrationCheck';
echo insertSecurityImage($packageName);
echo getSecurityImageText($packageName);
}
REPLACE WITH:
if (JPluginHelper::isEnabled('system', 'tincaptcha'))
{
echo '<input type="text" id="'.$field->name.'" name="'.$field->name.'" size="'.$field->size.'" value="" class="inputbox" /><br /><img src="index.php?option=com_tincaptcha&task=captcha_display" />'."\n";
}
4. FILE: administrator\components\com_virtuemart\classes\ps_shopper.php
LINE 76: if( file_exists($mosConfig_absolute_path.'/administrator/components/com_securityimages/server.php')) {
include_once( $mosConfig_absolute_path.'/administrator/components/com_securityimages/server.php');
$packageName = 'securityVMRegistrationCheck';
$security_refid = vmGet($_POST, $packageName.'_refid');
$security_try = vmGet($_POST, $packageName.'_try');
$security_reload = vmGet($_POST, $packageName.'_reload');
$checkSecurity = checkSecurityImage($security_refid, $security_try );
if( !$checkSecurity ) {
$provided_required = false;
$missing .= $field->name . ",";
}
}
REPLACE WITH:
if (JPluginHelper::isEnabled('system', 'tincaptcha'))
{
$checkSecurity = plgSystemTincaptcha::check($d[$field->name]);
if ($checkSecurity !== true)
{
$provided_required = false;
$missing .= $field->name . ",";
JError::raiseWarning(0, $checkSecurity);
}
}
LINE 176: if( file_exists($mosConfig_absolute_path.'/administrator/components/com_securityimages/server.php')) {
include_once( $mosConfig_absolute_path.'/administrator/components/com_securityimages/server.php');
$packageName = 'securityVMRegistrationCheck';
$security_refid = vmGet($_POST, $packageName.'_refid');
$security_try = vmGet($_POST, $packageName.'_try');
$security_reload = vmGet($_POST, $packageName.'_reload');
$checkSecurity = checkSecurityImage($security_refid, $security_try );
if( !$checkSecurity ) {
$provided_required = false;
$missing .= $field->name . ",";
}
}
REPLACE WITH:
if (JPluginHelper::isEnabled('system', 'tincaptcha'))
{
$checkSecurity = plgSystemTincaptcha::check($d[$field->name]);
if ($checkSecurity !== true)
{
$provided_required = false;
$missing .= $field->name . ",";
JError::raiseWarning(0, $checkSecurity);
}
}
5. Create new field.
In Manage User Fields, create a new one like this:

Screenshot:

For Product Enquiry hack, see the Post#21