Yes, US dollar works there, and there are many money changer there for foreign currency exchange if you want to pay by Peso.
Not quite sure about credit card transaction, did not do too much shopping in downtown area, and eating at local restaurants. However, sometimes, if you pay by cash, you might get better deal/price when you purchase local tour package, and do remember bringing many 1 dollar bills, as you will have many chances to pay tips.