Scenario: Basic paid membership site, Builder Theme, Exchange Membership product, using WP custom menu and the Exchange LogIn/LogOut menu item.
OK, this is not easy to explain so please bear with me.
1. Ideally when a member is not logged in, the the label of the menu should read Log In. And obviously when Logged In, should read Log Out.
I noticed on a site that I was working on that this was not always the case. At first it would work but then later it would not. And although the menu item, when selected, would function correctly, the label was not always correct. For example...
A user was logged in but the menu item label in the navigation module was reflecting LogIn. If that lagged in user selected the menu item it would log them out (so again, the function was there but the label was wrong).
The common thread I found was tied to the custom menu.
So, going back to when the menu-item was added to the the menu...
- an admin was logged in
- the exchange login page was added to the custom menu
- no special label was added
- no conditional logic was applied to that menu-item
- the menu was saved
So, the admin logs into the admin area and proceeds to add another menu item to the custom menu that already contains the exchange login/logout page. And proceeds by saving the menu.
From this point on, the front end users will never again see the LogOut option on the exchange LogIn/LogOut menu item.
Theory: My theory is that because the custom menu has the option of customizing the labels of the menu-items and the fact that they ARE lagged in, when they save that custom menu WP thinks that they have also made the label for that menu-item "Log In".
Furthermore, if the admin removes the label on that exchange page before saving, when the menu is saved, that page ends up removed from the custom menu altogether.
The only way that I have been able to resolve this is to make any needed custom menu changes, remove the exchange page from the custom menu, then re-add LogIn/LogOut exchange custom menu item and save the menu.
As long as the last action before saving the custom menu is adding the LogIn/LogOut page to the custom menu, the front end menu item functions AND reflects the correct label.
Hope this is helpful to someone who can find a better resolution.