- Status
- Resolvido
- Relatado para
- WPForms Multilingual 0.3.5
- Resolvido em
- WPForms Multilingual 0.3.6
- Tags de tópico
- Compatibility
Visão geral do problema
Se você está usando o WPForms e atualizou recentemente para 1.8.5.1, você pode encontrar o seguinte erro nas informações do seu debug.log se o seu site estiver sendo executado em um ambiente PHP8:
PHP Fatal error: Uncaught TypeError: strlen(): Argument #1 ($str) must be of type string, array given in .../wp-includes/formatting.php:3557
Solução alternativa
Recomendamos que os clientes que enfrentam esse problema revertam para o WPForms 1.8.4 até que uma correção seja lançada.
Caso contrário, certifique-se de ter um backup completo do seu site antes de prosseguir.
- Abra o arquivo …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Notifications.php.
- Procure a linha 70.
- Altere:
public function applyEmailTranslations( $data, $emails ) { $package = $this->newPackage( $this->getId( $emails->form_data ) ); do_action( 'wpml_switch_language_for_email', $data['to'] ); $dataKeys = [ 'subject', 'message' ]; - Para:
public function applyEmailTranslations( $data, $emails ) { $package = $this->newPackage( $this->getId( $emails->form_data ) ); if (is_array($data['to'])){ foreach ($data['to'] as $address){ do_action( 'wpml_switch_language_for_email', $address ); } } else { do_action( 'wpml_switch_language_for_email', $data['to'] ); } $dataKeys = [ 'subject', 'message' ];