Well, this is kind of a legacy issue from the original days of the plugin when it was more structured to one particular use. Over the years, and mostly as the result of feature requests from users, the plugin has added many features because there are many people who use it with different intended process flows and setups. It’s been a fun challenge to create something that is flexible enough to fit that.
For the sake of other people that may ready this, I want to clarify that the issue you are talking about is only if you are logged in on the register page. You don’t have to have a register page at all as the primary plugin design is to place login and registration in place of restricted content in order to encourage registration without taking the user away from what they are trying to access. I understand that not everyone uses it this way, hence the availability of the register page via a shortcode. But this leads to the fact that there needs to be some text there if the user is logged in (it doesn’t make much sense to show a logged in user the registration form).
Sorry for the long detail – here’s the solution to your quandary:
The plugin has its own pluggable functions. Similar to WordPress, you can establish your own version of certain functions outside of the plugin so that you can have a customized ‘hack’ so to speak without having it overwritten every time you upgrade the plugin. The process for setting this up is described on my blog here.
The function for creating the links on that page (and other pages) is pluggable and is a relatively simple function. It is wpmem_inc_memberlinks
and is found in wp-members-dialogs.php.
This function accepts the parameter $page
(which, if not passed defaults to the members area) and returns a string of html in the variable $str
.
In your case, my suggestion would be to copy the entire function to wp-members-pluggable.php (as described in the above referenced post) and simply change the register case to the html for the links you want.
You can’t break too much (as long as you’re not doing any db writes – which you’re not if you just are outputting some html) so if things go awry, you can simply delete the custom function to roll back and start over.
Hope that helps.