So, Why is the value of the function TRUE on init and at some point
during the event lifecycle this changes to false?
The answer to this (and effectively the question) is to do with WP Capabilities.
- Firstly: Certain WP functions are available at different times in
the action cycle (
https://codex.wordpress.org/Plugin_API/Action_Reference ) - Secondly: The cookie works and does pickup the correct user/ID and role
(administrator) so is_user_logged_in() and is_admin() are available. - Thirdly: The capabilities are not defined because of the difference
in WP Table Prefix.
The solution to this problem is to make sure capabilities are set correctly.
This means that the TABLE_PREFIX needs to be mapped for each user referencing the second database.
This action is performed on DB aaa (the primary/first) acting as the authenticator.
Table aaa.PREFIXA_user_meta => meta_key='PREFIXA_capabilities'
Copy this Row and re-label the meta_key to PREFIXB_capabilities'
This effectively allows admin access to those users linked on aaa.
Notable links that helped get to the answer: