You send a logo that looks fine, and it comes back on a black shirt with a white rectangle around it. This is not a printing mistake — it is what the file actually contained.
What is happening
JPEG has no way to store transparency. Every pixel must be some colour, so the "empty" area around your logo is stored as white. On a white shirt you never notice. On any other colour, you do.
The fix
Supply a PNG with a genuine transparent background, or a vector file. If all you have is a JPEG, the background has to be removed first — we can do that, but it is worth knowing before you order.
How to check
Open the file over a dark background. If you see a white rectangle, so will the press. Our design studio flags this automatically when you upload a JPEG onto a coloured garment.