We always stay at the San Juan Marriott (the one with the Stella Solaris Casino). Excellent hotel, great facilities, decent restaurant. We've stayed there three times pre-cruise. Can't say what the rates are, though. We always stay for free on Marriott "frequent sleeper" points.
The Marriott is a good choice if you want to be on Condado Beach, which is about a 15-minute ride from the pier and Old San Juan. The Caribe Hilton and the Condado Plaza are also good choices in this area.
Isla Verde is another oceanfront area a little further from the pier but close to the airport. The El San Juan is a great place to stay there ... good restaurants and lots of nightlife.
My favorite place to stay is right in Old San Juan, close to the pier and the historical district. The Wyndham Old San Juan has a great location overlooking the cruise pier. Hotel El Convento is a restored historical landmark a few blocks away, not far from the fortress at El Morro. Lots of charm.
We stayed in the Hyatt Cerromar (in Dorado) which was perfect with a young teen because of the wonderful pool and beach. The hotel is not the fanciest Hyatt I've ever stayed in, but our room was clean, had a good view and a large balcony. Of course, it is way out of town. So if you just want a day or two on a beach (or perhaps a golf course) this would work for you. The Hyatt Dorado is fancier, quieter, and probably where we would have stayed if we hadn't had a teen with us. It has a lovely beach, but just a small pool area.
Hope this helps