
I believe I see a similar issue. In my setup the checkbox is part of a repeater. The value stored in the database is clearly an array, but it is returned as string. My users can select one or more items, and I implode the returned array, to generate a set of classes.
Relevant snippet:
$categories = get_sub_field('category'); //checkbox returning value
var_dump($categories);
$category_list = $categories ? implode(' ', $categories) : '';
Stored in database: a:1:{i:0;s:10:"cat-global";}
Debug on my staging site: string(10) "cat-global"
Return output is set to ‘Value’, documentation states array is returned.
Strangly enough, also for me it seems to work on my local development environment as with debug it returns: array(1) { [0]=> string(10) "cat-global" }
Just checking if we have something in common: my prod/staging are on WPEngine.
By the way I can make my code work by switching the output to ‘Both (Array)’, and then using the first returned item. Just wondering what happened as my code has been running for a few years.
Thanks for the update Elliot! On my way testing my upgrade 🙂