• Resolved Albert Calzada

    (@calzbert)


    Hello, i have this error fatal when server is running php 8.0, 8.1, 8.2, 8.3.

    can you help us? thanks

    [Mon Mar 10 09:17:30.899999 2025] [proxy_fcgi:error] [pid 1227875:tid 1227897] [remote 2.154.208.14:51361] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: Cannot access offset of type string on string in /home/xx/public_html/wp-content/plugins/simple-social-icons/simple-social-icons.php:439\nStack trace:\n#0 /home/xx/public_html/wp-includes/class-wp-widget.php(535): Simple_Social_Icons_Widget->form()\n#1 /home/xx/public_html/wp-admin/includes/widgets.php(276): WP_Widget->form_callback()\n#2 /home/xx/public_html/wp-admin/includes/widgets.php(60): wp_widget_control()\n#3 /home/xx/public_html/wp-admin/widgets-form.php(456): wp_list_widgets()\n#4 /home/xx/public_html/wp-admin/widgets.php(34): require('...')\n#5 {main}\n  thrown in /home/xx/public_html/wp-content/plugins/simple-social-icons/simple-social-icons.php on line 439', referer: https://www.xx.es/wp-admin/update.php?action=upload-plugin&package=3841&overwrite=update-plugin&_wpnonce=837af39826
Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author Nahuai Badiola

    (@nahuai)

    Buenas, Albert.

    Gracias por ponerte en contacto para comentarnos tu error.

    El plugin está testado para versiones PHP +8.0 (desde hace meses) y no ha dado problemas hasta el momento. De hecho, no somos capaces de replicar tu error.

    Tiene toda la pinta de ser una incompatibilidad con algún plugin o tema que tienes instalado. ?Podrías el plugin Health Check and Troubleshooting (que te permite desactivar plugins solo para el usuario haciendo las pruebas) para detectar cual es la incompatibilidad?

    Una vez tengas más información al respecto podemos intentar ayudarte.

    Un saludo.

    Thread Starter Albert Calzada

    (@calzbert)

    Hola Nahuai !

    Gracias por la respuesta!

    He detectado que tenía en mi plugin personalizado de funciones, este código:


    add_filter( 'simple_social_default_profiles', 'custom_reorder_simple_icons' );

    function custom_reorder_simple_icons( $icons ) {

    // Define el nuevo orden de iconos
    $new_icon_order = array(
    'twitter' => '',
    'facebook' => '',
    'linkedin' => '',
    'youtube' => '',
    'behance' => '',
    'bloglovin' => '',
    'dribbble' => '',
    'email' => '',
    'flickr' => '',
    'github' => '',
    'gplus' => '',
    'instagram' => '',
    'medium' => '',
    'periscope' => '',
    'phone' => '',
    'pinterest' => '',
    'rss' => '',
    'snapchat' => '',
    'stumbleupon' => '',
    'tumblr' => '',
    'vimeo' => '',
    'xing' => '',
    );

    // Reordena los iconos comprobando que existan
    foreach( $new_icon_order as $icon => $info ) {
    $new_icon_order[$icon] = $icons[$icon] ?? '';
    }

    return $new_icon_order;
    }

    Lo he re-escribo con Chatgpt y ya me funciona bien:

    add_filter( 'simple_social_default_profiles', 'custom_reorder_simple_icons' );

    function custom_reorder_simple_icons( $icons ) {

    // Asegurar que $icons es un array válido antes de modificarlo
    if ( ! is_array( $icons ) ) {
    error_log( 'Simple Social Icons Error: $icons no es un array en custom_reorder_simple_icons().' );
    return $icons; // Devolver el original para evitar errores
    }

    // Definir el nuevo orden de iconos con valores por defecto
    $new_icon_order = array(
    'twitter' => [],
    'facebook' => [],
    'linkedin' => [],
    'youtube' => [],
    'behance' => [],
    'bloglovin' => [],
    'dribbble' => [],
    'email' => [],
    'flickr' => [],
    'github' => [],
    'gplus' => [],
    'instagram' => [],
    'medium' => [],
    'periscope' => [],
    'phone' => [],
    'pinterest' => [],
    'rss' => [],
    'snapchat' => [],
    'stumbleupon' => [],
    'tumblr' => [],
    'vimeo' => [],
    'xing' => [],
    );

    // Reordenar los iconos comprobando que existen y tienen datos válidos
    foreach ( $new_icon_order as $icon => $info ) {
    if ( isset( $icons[$icon] ) && is_array( $icons[$icon] ) ) {
    $new_icon_order[$icon] = $icons[$icon]; // Mantener datos originales del icono
    } else {
    unset( $new_icon_order[$icon] ); // Eliminar si no existe en el array original
    }
    }

    return $new_icon_order;
    }

    ?cómo ves la solución?

    gracias por tu ayuda!

    Plugin Author Nahuai Badiola

    (@nahuai)

    Buenas, Albert.

    Lo veo bien, lo único que sobra alguna deprecada como Google Plus y falta alguna de las que a?adimos más recientemente.

    Creo que algo así podría ser más apropiado:

    add_filter( 'simple_social_default_profiles', 'custom_reorder_simple_icons' );
    function custom_reorder_simple_icons( $icons ) {
    // Ensure $icons is a valid array
    if ( ! is_array( $icons ) ) {
    error_log( 'Simple Social Icons Error: $icons no es un array en custom_reorder_simple_icons().' );
    return $icons;
    }

    // Define the new order of icons (updated for latest version)
    $new_icon_order = array(
    'twitter' => [],
    'facebook' => [],
    'linkedin' => [],
    'youtube' => [],
    'instagram' => [],
    'tiktok' => [],
    'threads' => [],
    'bluesky' => [],
    'mastodon' => [],
    'pinterest' => [],
    'behance' => [],
    'dribbble' => [],
    'github' => [],
    'medium' => [],
    'reddit' => [],
    'telegram' => [],
    'whatsapp' => [],
    'email' => [],
    'phone' => [],
    'rss' => [],
    'amazon' => [],
    'bloglovin' => [],
    'diaspora' => [],
    'etsy' => [],
    'flickr' => [],
    'goodreads' => [],
    'meetup' => [],
    'periscope' => [],
    'snapchat' => [],
    'substack' => [],
    'tripadvisor' => [],
    'tumblr' => [],
    'vimeo' => [],
    'xing' => [],
    );

    // Reorder icons while preserving their data
    foreach ( $new_icon_order as $icon => $info ) {
    if ( isset( $icons[$icon] ) && is_array( $icons[$icon] ) ) {
    $new_icon_order[$icon] = $icons[$icon];
    } else {
    unset( $new_icon_order[$icon] );
    }
    }

    return $new_icon_order;
    }

    Confirma que también te funciona bien y reordena los iconos a tu gusto.

    Con tu permiso marco el ticket como resuelto. Si más adelante tienes alguna duda relacionada lo puedes reabrir.

    Un saludo!

    Thread Starter Albert Calzada

    (@calzbert)

    Si, me funciona bien. gracias !

    Plugin Author Nahuai Badiola

    (@nahuai)

    Genial, Albert!

    Gracias por confirmarlo.

    Si tienes un momento y nos dejas una rese?a te lo agradeceremos un montón. Nos ayuda a seguir manteniendo el plugin y el soporte. ??

Viewing 5 replies - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.