Default configuration value for serialized_array settings is ignored
After some tests I can confirm this is a bug introduced by Magento 1.9.3.0 (see here: https://github.com/OpenMage/magento-mirror/commit/d48bebc211cc216aaf78bdf25d7f0b0143d6333b#diff-139e884940505308d9c796f5e3a78865 )
Side note: this also affects SUPEE-8788
As a temporary fix, here is what I suggest: copy app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Serialized.php
to app/code/local/Mage/Adminhtml/Model/System/Config/Backend/Serialized.php
and modify the _afterLoad()
method like this:
protected function _afterLoad()
{
if (!is_array($this->getValue())) {
$serializedValue = $this->getValue();
$unserializedValue = false;
if (!empty($serializedValue)) {
try {
$unserializedValue = Mage::helper('core/unserializeArray')
->unserialize((string)$serializedValue);
} catch (Exception $e) {
Mage::logException($e);
}
}
$this->setValue($unserializedValue);
}
}