Honestly, I find it hard to follow what exactly you are doing, but if I read you correctly, your logic and your expectations seem to be at fault.
What you're describing:
- plugin at exec order 1 that puts the user into ug 26.
- second plugin at exec order 2, 3 or 4 that puts the user into ug 42.
Both plugins are executed one after another. Result: The user ends up in ug 42. What else do you expect?
This is confirmed by your second bit of code. Now you tell the second plugin to only move the user into ug 42 if he has not prior been moved to ug 26. Then he stays in 26. If you don't do that check, every user is moved to 42, whatever his prior ug.
Again: That is correct and perfectly logical. I just don't see what else you could expect as a result based on the information you're giving.
|