There are times when I feel like a bit of an idiot. This is one of those times!
As you will no doubt recall, I was trying to separate out the plugin actions into various included files. The relevant code triggered correctly when posting via the REST API (I.e. from Workflow) but the action that should be run when posting natively failed.
I couldn't work out why.
So, I started disabling the safety checks to see if I could find out why it wasn't working. I soon discovered that it was the nonce check that was failing.
And then it dawned on me...
I had copied the code directly from the main plugin file to an include but not altered the condition for the nonce check.
Why did this matter?
Well, the original condition was
basename( __FILE__ ) - used when you want to check that the action is being triggered within the same file. Quite obviously it now wasn't, so the check failed and the code never ran.
Changing the condition to a manually entered string meant the nonce verification would now pass and the code be triggered.
(At least we know that nonce verification works.)
I have now separated all functions into includes called from the main plugin file and everything appears to be working nicely.
I have, therefore, bumped the plugin version to 0.9.0 and called it a release candidate. Barring any glitches or obvious problems this will be the final code.
As always, the latest version is available in the GitHub repository.