Conversation
supportThe plugin settings page throws a fatal error when running in PHP 8+ Problem: $this->options is sometimes a string instead of an array, causing PHP 8+ to throw a TypeError when trying to access it as an array with [$arg[‘input_name’]]. Why this happens: – The constructor calls $this->options = get_option(‘ee_options’, $this->defaultOptions) – If the database option is corrupted or stored as a string instead of array, get_option() returns that string – The default options array isn’t used if any value exists in the database, even if it’s malformed Fix: 387 */ 388 public function input_apikey($arg) 389 { 390 - $apikey = $this->options[$arg['input_name']]; 390 + // Ensure $this->options is an array and fallback to defaults if not 391 + if (!is_array($this->options)) { 392 + $this->options = $this->defaultOptions; 393 + } 394 + 395 + $apikey = $this->options[$arg['input_name']] ?? ''; 396 update_option('ee-apikey', filter_var($apikey, FILTER_SANITIZE_NUMBER_INT)); 397 if (empty($apikey) === false) { 398 $apikey = '**********' . substr($apikey, strlen($apikey) - 5, strlen($apikey)); It would be nice to have the plugin repo added to github / ElasticEmail so it can be forked, fixed, and pull request send. This topic was modified 9 months, 3 weeks ago by mbenedek . This topic was modified 9 months, 3 weeks ago by mbenedek . Reason: removed link
No comments were stored for this source.