The 24-year-old Scotland international has scored four goals in 26 appearances for the Baggies since his arrival from Celtic last summer, but has only started once in the last five months for Tony Mowbray's side.
Lilywhites boss Alan Irvine told the club's official website: "I got word that Craig would be available from West Brom, they have obviously got five strikers at the moment.
"Craig being one of them and he has not been playing. So, there was an opportunity for us to bring him in.
"It all started last night (Monday) and carried on in the morning and I was delighted that it was done very quickly."