Open
Reported for: WPML String Translation 3.3.1
Overview of the issue
You might encounter an error like this one:
1 2 3 4 5 6 7 8 9 10 11 12 | PHP Fatal error: Uncaught TypeError: WPML\StringTranslation\Infrastructure\StringGettext\Repository\FrontendQueueJsonRepository::get(): Return value must be of type array , null returned in \wp-content\plugins\wpml-string-translation\StringTranslation\Infrastructure\StringGettext\Repository\FrontendQueueJsonRepository.php:36 Stack trace: #0 \wp-content\plugins\wpml-string-translation\StringTranslation\Infrastructure\StringGettext\Repository\FrontendQueueRepository.php(75): WPML\StringTranslation\Infrastructure\StringGettext\Repository\FrontendQueueJsonRepository->get() #1 \wp-content\plugins\wpml-string-translation\StringTranslation\Infrastructure\StringHtml\Command\ProcessFrontendGettextStringsQueue.php(34): WPML\StringTranslation\Infrastructure\StringGettext\Repository\FrontendQueueRepository->get() . . . #12 {main} thrown in \wp-content\plugins\wpml-string-translation\StringTranslation\Infrastructure\StringGettext\Repository\FrontendQueueJsonRepository.php on line 36 |
Workaround
Using your hosting’s File manager or using an FTP client like Filezilla, Go to:
/wp-content/plugins/wpml-string-translation/StringTranslation/Infrastructure/StringGettext/Repository/FrontendQueueJsonRepository.php
Find this code (around line 28):
1 2 3 4 5 6 7 8 9 10 | public function get(): array { $filepath = $this ->getQueueFilepath(); $data = []; if ( file_exists ( $filepath ) && is_readable ( $filepath ) ) { $data = json_decode( file_get_contents ( $filepath ), true ); } return $data ; } |
And change it with this one:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public function get(): array { $filepath = $this ->getQueueFilepath(); $data = []; if ( file_exists ( $filepath ) && is_readable ( $filepath ) ) { $data = json_decode( file_get_contents ( $filepath ), true ); } if ( is_null ( $data )){ $data = []; } return $data ; } |