First of all in the places you mention you will hardly see any crime. It is safer there then in many places in the USA or Europe.
In P. Vallarta the Krystal Hotel - close to the cruise-terminal - is free for cruise-passengers. Show them your cruise-cards at the entrance.
Some other hotels - but farther away in Nuevo vallarta - like Westin and marriott allow passengers but you have to pay a fee.