An international traveller has pleaded guilty to a one-punch attack on a 43-year-old man near a Geraldton pub and leaving him for dead last year.