virtuemart_logoOne of the Virtuemart feature requests we get a lot is an option to disable the default Virtuemart order confirmation e-mail or the ability to let customers pay an order before they confirm it. Webshop owners want to disable this because in Virtuemart, payment is often done after order confirmation. It is possible that a customer does confirm the order, but then does not continue to pay. The customer then does receive an order confirmation, and that is what webshop owners want removed. 

This can be done with a little Virtuemart 1.1 hack, but please note, we do not provide support for it. If you want to implement this hack, you do that at your own risk, by following the short manual below.


Looking for a Virtuemart 2.0 solution? Read how to disable default Virtuemart order confirmation e-mails.
Looking for powerful Virtuemart PDF invoicing and order management? Check out ccVAOM!

Removing the Virtuemart order confirmation e-mail

Line numbers on the below steps can be a few hundred lines off, if you modified ps_checkout.php before, or use cciDEAL Virtuemart. 

  • Open ps_checkout.php in /administrator/components/com_virtuemart/classes
  • Around line 2100, remove this code:
// Mail receipt to the shopper
vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $msg, "" );
  • Around line 2228, remove this code:
$shopper_mail = vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $shopper_mail_Body, $shopper_mail_AltBody, true, null, null, $EmbeddedImages);
  • Around line 2232, find this code:
if ( !$shopper_mail || !$vendor_mail ) { $vmLogger->debug( 'Something went wrong while sending the order confirmation email to '.$from_email.' and '.$shopper_email ); return false; }
  • In the code from line 2232, remove .' and '.$shopper_email so it becomes:
if ( !$vendor_mail ) { $vmLogger->debug( 'Something went wrong while sending the order confirmation email to '.$from_email ); return false; }

Hack created by Bjarnevk