Bocas del Toro is easily accessed as follows:
Buses from Panama City leave in the evening between 7pm and 8pm from the Albrook bus terminal, and the journey takes about 10 hours to Almirante. From there, you will have to take a water taxi to the main island, which takes another 30 minutes and costs $6 per person. You’ll be arriving to Almirante at around 7.00 am. Tickets have to be purchased on the same day you travel at the Albrook Bus terminal ($30). Busses are ice cold at night, so make sure to wear a sweater and trousers.
If you prefer to travel during the day, you can catch a ride to David first (7 to 8 hours drive) leaving from the same bus terminal, and from David take a smaller bus to Almirante (4-4.5 hours). Busses to David leave every hour. Make sure to leave no later than 2pm from David however, as the last water taxi from Almirante to the island leaves at 6pm. It’s recommended to catch a bus from Panama City at no later than 7.00am if you want to go this route.