It sounds like you already have a way to save the player’s progress. Where ever you are handling your UMG logic, have it check the players progress. If the player isn’t far enough in the game, have the UMG widget use a tint (probably a dark grey color) or something to show the player they can’t select it.
I’m not sure how your save game is set up, but say you have an integer that represents the highest level completed. Retrieve that integer from your save game and get a compare int node, then compare that integer to the level that the UMG widget is supposed to represent. Make a color variable.
Pull off the < exec pin from the compare node and set the color variable to whatever you want the locked out level to be tinted. With the = and > exec pins, set the color variable to anything, but with an alpha of 0 so no tint is applied. Bind the level widget tint to the coresponding color variable.
I imagine the player won’t make any progress in the main menu so you won’t need to check this on tick or anything. Just do it on Begin Play in the UMG blueprint.