WPML
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' ];

Todos los problemas conocidos →