Help! Is there a direct train from Lucerne to Milan? If so, what website can I purchase tickets?
Yes, at least one per day.
You can buy from https://www.trenitalia.com/en.html
Or from https://www.sbb.ch/en
Yes. EC 151 departs Luzern at 12:18 daily and arrives in Milan 3.5 hours later. You can buy the direct train on either Trenitalia or SBB. The regular price in 2d class is 74€ or 74 CHF. If you buy well ahead, you may find a Smart fare of 30€ or a Smart2 fare of 37€ on Trenitalia ( they have different terms for changing or canceling). On SBB the “special offer” price for the same train is 37;CHF.
If you need to be in Milan earlier, you can take the 10:18 IC train, change in Lugano, and arrive at Milano Centrale at 13:17. Or take an earlier train that that if you like.
If you are using Trenitalia, enter the cities as Luzern and Milano.
We changed trains in Arth-Goldau. It was very easy and we waited only around 10 minutes between trains. It gave us a lot more options than the one direct train.
as said above the usual route would be, because Luzern is a dead end station facing away from the south, involves a quick easy change at Arth-Goldau.
There is the daily no-change but that is by far the exception.