Avisos
Vaciar todo

[Resuelto] Actualización versión PHP

14 Respuestas
4 Usuarios
0 Reactions
24 Visitas
Respuestas: 8
Active Member
Topic starter
 

Hola, quería mostrarles un problema que me ha surgido en la página web: https://verdeibero.com y es que me muestra un mensaje que el sitio se está ejecutando en una versión obsoleta de PHP 7.4.33. He entrado en el servidor de Webempresa y he intentado actualizarlo a la versión posterior 8.0 pero la página web no funciona bien, se muestra mal y me sale que hay un error crítico, entonces he revertido el cambio. Estoy en punto que no sé para no perder la página web. Agradecería que me ayudasen. Muchas gracias.

Contenido solo visible a usuarios registrados


 
Respondido : 05/12/2025 12:20 pm
Pepe
 Pepe
Respuestas: 41782
Illustrious Member Admin
 

Hola Antonio

Antes de modificar la version de PHP tiens que actualizar WordPress, plugins y plantilla.

.- Accede a Escritorio -> Actualizaciones.

.- Actualiza primero WordPress, una vez actualizado, actualiza los plugins y por ultimo la plantilla

Cuando lo tengas modifica la version de PHP

Tienes un plugin que es de pago " Elementor Pro " y necesitas la licencia, si no tienes la licencia no podrás actualizarlo y puede que de problemas al modificar la version de PHP, si tienes problemas lo desactivas y lo revisas.

 

Un saludo


 
Respondido : 05/12/2025 12:55 pm
Respuestas: 8
Active Member
Topic starter
 

Hola Pepe, muchas gracias por contestar

Necesitaria que me detallases un poco mejor como realizar la actualización de la plantilla, pues lo que es Wordpress y los plugin no tengo problema pero la plantilla no sé muy bien como actualizarla. Gracias

 


 
Respondido : 09/12/2025 5:59 pm
Respuestas: 8
Active Member
Topic starter
 

A excepción de la plantilla que no he visto nada que tenga que actualizarla, el resto lo he actualizado todo empezando por Wordpress y después plugin y temas. Seguidamente he vuelto a actualizar la version de PHP a 8.0 y me vuelve a salir mal no visualizándose bien la página web. Les adjunto un pantallazo que he hecho antes de revertir de nuevo PHP a la versión 7.4.

photo 2025 12 09 19 32 10

Ruego me sigan ayudando, muchas gracias.


 
Respondido : 09/12/2025 6:35 pm
Karen Rios
Respuestas: 19117
Illustrious Member Moderator
 

Hola Antonio, 

En este caso más allá de tener todo actualizado, si sigues recibiendo el error quiere decir que algún plugin o inclusive el tema no son compatibles con versiones PHP 8.0, esto ya es algo del desarrollador como tal de la plantilla o plugins que utilices.

Debes probar qué plugin causa conflicto; para ello desactiva todos los plugins y cambia la versión PHP, verifica si todo funciona de forma correcta. Si es así, debes ir activando uno por uno mientras pruebas cuál está generando el conflicto con PHP. 

Puedes realizar estas pruebas en un clon de tu sitio web, de forma que tu sitio web activo no se vea afectado → https://www.webempresa.com/blog/clonar-wordpress-en-3-clics-sin-perder-tiempo.html

Verifícalo y nos comentas como va todo

Un Saludo 

 

 
Respondido : 09/12/2025 7:20 pm
Respuestas: 8
Active Member
Topic starter
 

Hola he probado a desactivar todos los plugins y a poner la version 8.0 de PHP y sigue sin verse bien, así que supongo que de los plugins no es. He vuelto a revertirlo a la version 7.4

photo 2025 12 10 19 23 51

Quería comentarles que yo no tengo conocimientos de diseño ya que a lo único que me he dedicado desde que el desarrollador me entregó la página web es a actualizar los plugins y a hacer compias de seguridad, no tenia conocimiento de que habia que actualizar el PHP hasta que me salió el aviso en wordpress y tampoco sabía muy bien que hacer. Contacto con el desarrollador de la página web no tengo, por lo que me veo bastante impotente. No sé si la página web me dejará de funcionar pero espero y ruego que ustedes puedan ofrecerme asistencia. Gracias y un saludo


 
Respondido : 10/12/2025 6:30 pm
Karen Rios
Respuestas: 19117
Illustrious Member Moderator
 

Hola Antonio, 

Entiendo, en este caso veo que puede ser una combinación de plugins y tema, lo primero desactiva el plugin de Schema & Structured Data for WP & AMP que veo tienes activo, luego de ello revisa activa el tema padre de Astra y no tener el tema hijo que veo tienes activo.

Luego de ello revisa si al cambiar la versión PHP funciona todo correcto; si es así, debes revisar si tienes códigos añadidos en el function.php del tema hijo que genera conflicto con una versión 8.x de PHP. 

Verificalo y nos comentas como va todo

Un Saludo


 
Respondido : 10/12/2025 8:21 pm
Respuestas: 8
Active Member
Topic starter
 

Hola Karem, buenas tardes,

Acabo de desactivar el plugin que me has comentado, he activado el tema padre de Astra y he procedido a cambiar la version de PHP a la 8.0 y ahora si se ve bien. Cuanto me alegro, pensé que perdía la página.

Solo espero que el funcionamiento interno tambien vaya bien. Yo he probado los enlaces de la pagina y un poco el funcionamiento y parece ir bien. Muchísimas gracias por todo, les estoy eternamente agradecida.

Lo del código que me indican que revise no sé muy bien qué hacer. Creo que voy a revertir la página al PHP 7.4 porque me dan un tiempo de media hora creo para hacerlo no? y comprobaré lo del código en function.php para ver si hay alguno, no vaya ser que haya y con el cambio no funcione bien. Ya les digo y si no les importa me vuelven a aconsejar. Muchas gracias de nuevo

 


 
Respondido : 11/12/2025 6:13 pm
Respuestas: 8
Active Member
Topic starter
 

Acabo de mirar la sección de functions.php en el tema hijo que he vuelto a activar y voy a pasarles una copia del código que ahí se encuentra, para que me aconsejen qué hacer porque yo de código no tengo conocimiento. Gracias.

<?php
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;
 
// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:
 
if ( !function_exists( 'chld_thm_cfg_locale_css' ) ):
    function chld_thm_cfg_locale_css( $uri ){
        if ( empty( $uri ) && is_rtl() && file_exists( get_template_directory() . '/rtl.css' ) )
            $uri = get_template_directory_uri() . '/rtl.css';
        return $uri;
    }
endif;
add_filter( 'locale_stylesheet_uri', 'chld_thm_cfg_locale_css' );
         
if ( !function_exists( 'child_theme_configurator_css' ) ):
    function child_theme_configurator_css() {
        wp_enqueue_style( 'chld_thm_cfg_child', trailingslashit( get_stylesheet_directory_uri() ) . 'style.css', array( 'astra-vc-builder','astra-theme-css','woocommerce-layout','woocommerce-smallscreen','woocommerce-general' ) );
    }
endif;
add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css', 10 );
 
 
// END ENQUEUE PARENT ACTION
 
 
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'Desde: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
 
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'Desde: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
 
if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}
 
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
 
//Mostrar precios de productos agotados
add_filter('woocommerce_get_price_html', 'show_price_for_out_of_stock_variations', 10, 2);
 
function show_price_for_out_of_stock_variations($price, $product) {
if ($product->is_type('variable')) {
foreach ($product->get_children() as $variation_id) {
$variation = wc_get_product($variation_id);
if (!$variation->is_in_stock()) {
return '<span class="out-of-stock-price">Desde ' . $variation->get_price_html() . '</span>';
}
}
} elseif (!$product->is_in_stock()) {
return '<span class="out-of-stock-price">' . $price . '</span>';
}
return $price;
}
 
 //Excluir provincias ajenas a la peninsula.
add_filter('woocommerce_variable_price_html', 'mostrar_precios_variable_agotado', 10, 2);
 
add_filter ('woocommerce_states', 'webempresa_limita_envios');
 
function webempresa_limita_envios ($provincias) {
   unset ($provincias ['ES'] ['CE']);
   unset ($provincias ['ES'] ['ML']);
   unset ($provincias ['ES'] ['TF']);
   unset ($provincias ['ES'] ['GC']);
   unset ($provincias ['ES'] ['PM']);
   return $provincias;
   }
 
function ocultar_gastos_envio_si_pago_gratuito( $rates )
{
    $free = array();
 
 
    foreach ( $rates as $rate_id => $rate ) {
        if ( 'free_shipping' === $rate->method_id )
        {
            $free[ $rate_id ] = $rate;
            break;
        }
    }
 
 
    return ! empty( $free ) ? $free : $rates;
}
 
add_filter( 'woocommerce_package_rates', 'ocultar_gastos_envio_si_pago_gratuito', 100 );
 
/**
* Optimiza los scripts de WooCommerce
* Quita la tag Generator de WooCommerce, estilos y scripts de páginas no WooCommerce.
*/
add_action( 'wp_enqueue_scripts', 'child_manage_woocommerce_styles', 99 );
function child_manage_woocommerce_styles() {
//quitamos la tag generator meta
remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );
//Primero comprobamos si está instalado WooCommerce para evitar errores fatales
if ( function_exists( 'is_woocommerce' ) ) {
//y aplicamos el dequeue a scripts y estilos
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_home() ) {
wp_dequeue_style( 'woocommerce_frontend_styles' );
wp_dequeue_style( 'woocommerce_fancybox_styles' );
wp_dequeue_style( 'woocommerce_chosen_styles' );
wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
wp_dequeue_script( 'wc_price_slider' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-add-to-cart' );
wp_dequeue_script( 'wc-cart-fragments' );
wp_dequeue_script( 'wc-checkout' );
wp_dequeue_script( 'wc-add-to-cart-variation' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-cart' );
wp_dequeue_script( 'wc-chosen' );
wp_dequeue_script( 'woocommerce' );
wp_dequeue_script( 'prettyPhoto' );
wp_dequeue_script( 'prettyPhoto-init' );
wp_dequeue_script( 'jquery-blockui' );
wp_dequeue_script( 'jquery-placeholder' );
wp_dequeue_script( 'fancybox' );
wp_dequeue_script( 'jqueryui' );
}
}
}
 
// Añadir el filtro de método de pago en la página de pedidos
function dl_anadir_filtro_forma_pago_pedidos() {
    global $typenow;
    if ( 'shop_order' !== $typenow ) {
        return;
    }
 
    $methods = WC()->payment_gateways->payment_gateways();
    ?>
    <select name="payment_method" id="dropdown_payment_method">
        <option value=""><?php _e( 'Todos los métodos de pago', 'text_domain' ); ?></option>
        <?php foreach ( $methods as $method ) : ?>
            <?php if ( 'yes' === $method->enabled ) : ?>
                <option value="<?php echo esc_attr( $method->id ); ?>"><?php echo esc_html( $method->get_title() ); ?></option>
            <?php endif; ?>
        <?php endforeach; ?>
    </select>
    <?php
}
add_action( 'restrict_manage_posts', 'dl_anadir_filtro_forma_pago_pedidos' );
 
// Filtrar pedidos por método de pago
function dl_filtrar_pedidos_pago( $query ) {
    global $pagenow, $typenow;
 
    if ( 'edit.php' !== $pagenow || 'shop_order' !== $typenow || !isset( $_GET['payment_method'] ) || empty( $_GET['payment_method'] ) ) {
        return;
    }
 
    $payment_method = sanitize_text_field( $_GET['payment_method'] );
    $query->set( 'meta_query', array(
        array(
            'key' => '_payment_method',
            'value' => $payment_method,
        ),
    ));
}
add_filter( 'parse_query', 'dl_filtrar_pedidos_pago' );
 
// Mostrar el campo de texto cuando creas la categoría
 
add_action( 'product_cat_add_form_fields', 'dl_wc_anadir_editor_1', 10, 2 );
 
function dl_wc_anadir_editor_1() {
    ?>
    <div class="form-field">
        <label for="
desc"><?php echo __( 'Descripción de abajo', 'woocommerce' ); ?></label>
       
      <?php
      $settings = array(
         'textarea_name' => 'seconddesc',
         'quicktags' => array( 'buttons' => 'em,strong,link' ),
         'tinymce' => array(
            'theme_advanced_buttons1' => 'bold,italic,strikethrough,separator,bullist,numlist,separator,blockquote,separator,justifyleft,justifycenter,justifyright,separator,link,unlink,separator,undo,redo,separator',
            'theme_advanced_buttons2' => '',
         ),
         'editor_css' => '<style>#wp-excerpt-editor-container .wp-editor-area{height:75px; width:80%;}</style>',
      );
 
      wp_editor( '', 'seconddesc', $settings );
      ?>
       
        <p class="description"><?php echo __( 'Este texto va en la zona de abajo de las categorías', 'woocommerce' ); ?></p>
    </div>
    <?php
}
 
// Mostrar el campo de editar texto en la edición de la categoría
 
add_action( 'product_cat_edit_form_fields', 'dl_wc_anadir_editor_2', 10, 2 );
 
function dl_wc_anadir_editor_2( $term ) {
    $second_desc = htmlspecialchars_decode( get_woocommerce_term_meta( $term->term_id, 'seconddesc', true ) );
    ?>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="second-desc"><?php echo __( 'Descripción de abajo', 'woocommerce' ); ?></label></th>
        <td>
            <?php
          
         $settings = array(
            'textarea_name' => 'seconddesc',
            'quicktags' => array( 'buttons' => 'em,strong,link' ),
            'tinymce' => array(
               'theme_advanced_buttons1' => 'bold,italic,strikethrough,separator,bullist,numlist,separator,blockquote,separator,justifyleft,justifycenter,justifyright,separator,link,unlink,separator,undo,redo,separator',
               'theme_advanced_buttons2' => '',
            ),
            'editor_css' => '<style>#wp-excerpt-editor-container .wp-editor-area{height:125px; width:100%;}</style>',
         );
 
         wp_editor( $second_desc, 'seconddesc', $settings );
         ?>
       
            <p class="description"><?php echo __( 'Este texto va en la zona inferior de la categoría de productos', 'woocommerce' ); ?></p>
        </td>
    </tr>
    <?php
}
 
// Que se pueda guardar el contenido
 
add_action( 'edit_term', 'dl_wc_guardar_campo', 10, 3 );
add_action( 'created_term', 'dl_wc_guardar_campo', 10, 3 );
 
function dl_wc_guardar_campo( $term_id, $tt_id = '', $taxonomy = '' ) {
   if ( isset( $_POST['seconddesc'] ) && 'product_cat' === $taxonomy ) {
      update_woocommerce_term_meta( $term_id, 'seconddesc', esc_attr( $_POST['seconddesc'] ) );
   }
}
 
// Mostrar el texto en la categoría
 
add_action( 'woocommerce_after_shop_loop', 'dl_mostrar_desc_abajo_cat', 5 );
 
function dl_mostrar_desc_abajo_cat() {
   if ( is_product_taxonomy() ) {
      $term = get_queried_object();
      if ( $term && ! empty( get_woocommerce_term_meta( $term->term_id, 'seconddesc', true ) ) ) {
         echo '<p class="term-description">' . wc_format_content( htmlspecialchars_decode( get_woocommerce_term_meta( $term->term_id, 'seconddesc', true ) ) ) . '</p>';
      }
   }
}

 
Respondido : 11/12/2025 6:21 pm
Karen Rios
Respuestas: 19117
Illustrious Member Moderator
 

Hola Antonio, 

Verificando el código, el que posiblemente genera error es este que te menciono

add_filter('woocommerce_variable_price_html', 'mostrar_precios_variable_agotado', 10, 2);

Lo tienes justo debajo del comentario. //Excluir provincias ajenas a la peninsula.

Verifica eliminarlo y revisa si al hacerlo te permite cargar bien al sitio web con las versiones recientes de PHP

Verifícalo y nos comentas cómo va todo

Un Saludo

 

 
Respondido : 11/12/2025 8:21 pm
Respuestas: 8
Active Member
Topic starter
 

Hola Karem buenas tardes

Acabo de quitar ese fragmento de código que me has comentado y parece ser que si era ese código el que generaba problemas. He dejado el tema hijo activo de Astra y he procedido a cambiar a la versión 8.0 de PHP y se ve todo correcto, qué alegria. 

Ya por ultimo agradecería que me aconsejaras cuando debo de cambiar a las siguientes versiones de PHP pues veo que ya va por la 8.3, aunque si no hay problema me gustaría estar unas semanas con esta para ver si se genera algun problema por estos cambios, que espero que no. 

Muy agradecido por la ayuda. Un saludo.

 

 


 
Respondido : 12/12/2025 6:08 pm
Karen Rios
Respuestas: 19117
Illustrious Member Moderator
 

Hola Antonio, 

Enhorabuena ya funciona de forma correcta, es un placer para nosotros siempre poder ayudarte. 

En teoría, la versión PHP 8.3 debe funcionar; puedes probar cambiarla y ver si todo funciona de forma correcta. También si gustas puedes esperar un rato y ya luego cambiar a una versión PHP más reciente como 8.3

Verificalo y nos comentas como va todo

Un saludo 

 

 
Respondido : 12/12/2025 7:36 pm
Respuestas: 8
Active Member
Topic starter
 

Hola Karem

Sii voy a esperar un poco antes de volver a actualizar el PHP a la siguiente versión. En cuanto realice el cambio le comento cómo ha ido todo.

Muchísimas gracias de nuevo por la ayuda prestada. Les estoy enormemente agradecido.


 
Respondido : 13/12/2025 5:24 pm
Bruno
Respuestas: 6689
Illustrious Member Moderator
 

Que tal Antonio,

Siempre es un gusto poder ayudarte, daremos el tema por resuelto pero si tienes alguna otra duda o consulta con gusto la atenderemos

Saludos!


 
Respondido : 13/12/2025 5:47 pm