July 12 is almost the worst possible time, all things considered. It's too far away for you to really step on the gas and do the thing where you make an appointment and show up in person, yet it's too soon to just send everything in and see how it goes.

You should do expedited processing. If you believe their processing time web page, then expedited service takes 2-3 weeks.

If you're doing this via mail, then they don't take credit card numbers. You need a check or money order. If you're going in person, you can use a credit card, but it's well worth your time to avoid going in person (you make an appointment and you still wait for hours) and just follow the "expedited" procedures.

P.S. For future reference, there's no reason to pay somebody $7 to make "passport photos" for you. You can take a picture of yourself with any old camera against a vanilla white wall, and use Photoshop or whatever to size it properly before printing it. That's how I did my last passport photo.