Ok you are not bad in that you hae the right constant and location but you don't get the big picture. An entirely diffferent part of zencart after an order is successfully makred as paid, starts working on the tables, it pulls the constant through from the worldpay module and embeds it in the "order", in a single static row in a table that is saved for all time (that's hwo it's supposed to work). Now when it does this, it happens to pull the email template, does a quick search and replace and sends out the html, from the same information.

So if you created a new constant then you would have two options, either a) start playing with the module to get it to send out the new constant only after the order was successful, or b) start playing with the core of zencart and telling it to ignore what it normally does and change the constant in the email.

The third way is what I suggested, edit the template for the emails that goes out. The template is a basic seearch & replace with information from the core of zencart, so you can write "I'm a blue monkey" in there and it will go out just as you wrote it. Things in Capitals with a $ in in front of them get replaced by zencart so you need to locate the $VARIABLE that shows your image, and just put "Paid by Worldpay" in it's place, so just mark up each section of the email template with letters or numbers so that when you put a test order through, you can work out which bit to change. I'd do this but I don't have a worldpay account (yes I know that I run the module and it's just weird, but it's also true) and I haven't got a spare demo site set up (which takes a couple of hours) when it's faster that you send yourself an email.

It's a worldpay only template so won't affect any other users or processes, so you find the file,

/email/email_template_wp_callback.html

mark it up with numbers so that you can locate which variable to replace, and remove the sentence "I'm a blue monkey" before going "live".

Philip.