I think you may be able to make use of self-variables, which requires a plugin.

Every time the player chops wood, increment the variable of a tree by 1.

Also, have a global variable somewhere, not sure if your plugin gives you the absolute number of days that have passed. So, if a tree's variable is less than the number of days times 3, allow chopping, if it is greater or equal to the number of days times 3, then disallow chopping.

The problem with this is that if they didn't chop the tree every day, they'd be able to catch up on the lost wood. So, you can also check for if the tree's variable is less than the number of days times 3 subtract 3, and if so, then you set the tree's variable to the number of days times 3 subtract 3.

E.g. It is Day 3. The tree's variable is at 0, because the player has never chopped it. So, your conditional branch will set the tree's variable to (3*3)-3 = 6. The player chops once, variable is now 7, chops again, now it is 8, chops again, now it is 9. Tries to chop again, but the tree's variable is not less than the number of days times 3, which is (3*3) = 9. But, on the next day, Day 4, the number will be 3*4 = 12, and that tree can then be chopped three more times.