Well, assuming your present_id_0, 1, 2, _3 are supposed to represent 4 different products, you should instead normalize your database. That is
product (id, name, price, etc)
order (id, user_id, created, paid, shipped, billing_street, billing_zip, billing_city,
billing_country, shipping_street, etc,
FOREIGN KEY (user_id) REFERENCES user(id))
order_product (product_id, order_id, units, unit_price, etc,
PRIMARY KEY (product_id, order_id),
FOREIGN KEY (product_id) REFERENCES product(id),
FOREIGN KEY (order_id) REFERENCES order(id))
In plain english: the order information for each order goes into the order table, but no information about specific products of this order are stored in this table. Each and every product for an order goes into its own row in the order_product table, while each specific product is stored in the product table.
At this point, you will not have to perform one join per column in your order table to get product names for each of the four producs. Also, never use to retrieve all table firelds. Always specify exactly which fields you want. Anyway, no you simply
SELECT o.id AS order_id, p.id AS product_id, p.name as product_name, p.units, p.unit_price, p.units * p.unit_price AS product_total, user.id AS user_id, user.name AS user_name
FROM orders AS o
-- Now you will also need to join on order_products to retrieve all products belonging
-- to a specific order
INNER JOIN order_products AS op on products.id = order_products.order_id
-- No need for a left join. If the product is not in the product table, you have serious
-- problem. No order should be able to contain such a product to begin with.
INNER JOIN products AS p ON p.id = op.product_id
-- and you might want to know which user this concerns as well
INNER JOIN user u ON u.id = o.user_id