A possible solution for this is to use a combination of the Flag and Rules modules, which integrate very well with the Organic groups module.
Here are the highlights of how you could make it work:
- Create a 'global' flag (using Flag) that will be used to identify (flag) users with their membership is pending
- Create a 1st rule (using Rules) like so:
- Rules Event = User has become a group member
- Rules Condition =
og-membership:state
EQUAL TO pending
- Rules Action = set the flag (defined as in "1.") the user (using Flag)
- Create a 2nd rule (using Rules) like so:
- Rules Event = User has become a group member
- Rules Condition =
og-membership:state
EQUAL TO active
- Rules Action = unset the flag (defined as in "1.") the user (using Flag)
- Create a 3rd rule (using Rules) like so:
- Rules Event = Content is viewed
- Rules Condition = "Path matches some path on which you want to show such message"
- Rules Action = Show a message on the site
In case you have multiple organic groups for which you want to implement something similar, you have these options:
- Create a similar flag and a similar set of 3 rules for each of these groups.
- Use the Rules Conditional module so that you can combine the above logic for all groups in an enhanced version of rule2, -3 and -4.
- It would probably also be a good idea to move part of the logic in the above rules in a 'rules component'.
Using the Rules Conditional module you could also combine rule 2 and rule 3 above in a single rule.
In case the above may seem like overkill (2 extra modules, and 3 rules to be created ...), keep in mind that with these very same 2 modules you can implement lots (dozens?) of other functions/features. Probably also to address "... quite a number of questions related to Organic Groups..." you mentioned in your question.
Video tutorials
If you're not familiar with Rules, checkout the video tutorials Learn the Rules framework. And/or the similar set of 8 video tutorials about the Flag module. For Organic Groups there is another set of amazing videos to Learn Organic Groups.
Possible alternative
For anybody who considers the Organic Groups module as rather complex (like me ...), have a look at the Group module as a possible alternative. For (way) more details about this module, refer to my answer to "How to create basic Organic Groups functionality with flags and references?".