- Estado
- Resuelto
- Notificado para
- WPForms Multilingual 0.3.5
- Resuelto en
- WPForms Multilingual 0.3.6
- Etiquetas de temática
- Compatibility
Resumen del problema
Si está utilizando WPForms y ha actualizado recientemente a 1.8.5.1, es posible que encuentre el siguiente error en la información de su debug.log si su sitio web se ejecuta en un entorno PHP8:
PHP Fatal error: Uncaught TypeError: strlen(): Argument #1 ($str) must be of type string, array given in .../wp-includes/formatting.php:3557
Solución alternativa
Se recomienda a los clientes que experimentan este problema que vuelvan a WPForms 1.8.4 hasta que se publique una solución.
De lo contrario, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.
- Abra el archivo …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Notifications.php.
- Busque la línea 70.
- Cambie:
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' ]; - Por:
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' ];