Pregunta sobre WooCommerce de Wordpress:

capaz de rastrear la ubicación de la llamada incorrecta a «get_product»

Un usuario preguntó 👇

Cada vez que realizo ciertas acciones (como actualizar un producto en el administrador de woo) recibo una notificación de PHP:

AVISO: get_product es obsoleto desde la versión 3.0! Utilice wc_get_product en su lugar. Tipo: Notificación en línea PHP: 3840 Archivo: /var/www/test_html/wp-includes/functions.php

Pero reviso todos los plugins y temas que tengo y los lugares en los que puedo encontrar esto son DESPUÉS de verificar una versión de woocommerce que sea mucho más antigua que la que he instalado (3.4):

<?php if ( $woocommerce->version >= '3.0' ) : ?>

¿Alguien puede darme alguna indicación de por qué aparece esta notificación cuando no puedo encontrar ningún lugar al que llame esta función? ¿Hay alguna manera mejor de obtener el archivo ACTUAL llamando a esto?

(@riaanknoetze)

Hace 2 años, 7 meses

Hola,

Esa notificación simplemente significa que uno de sus plugins (o tema) que está utilizando está utilizando un método WooCommerce desactualizado para obtener productos. En cuanto a cuál es, es imposible para nosotros decirlo desde «afuera» porque no tenemos acceso al código que alimenta su sitio.

Dicho esto, una manera rápida y fácil de obtener ese método es descargar una copia de todo su sitio y buscar en el sitio en la función a través de un editor de texto como https://www.sublimetext.com/

Espero que ayude.

(@ssuess)

Hace 2 años, 7 meses

Gracias por el consejo, pero eso es exactamente lo que ya hice como mencioné anteriormente. En cualquier caso, debería haber una forma más fácil de encontrar el archivo real que está haciendo una mala llamada. Me sorprende que no haya ningún plugin o código que pueda capturar el archivo original que generó una notificación en particular, aparte del error resultante y una referencia de archivo que no es la causa original y no se usa tanto.

(@kbassart)

Ingeniero Automático de Felicidad

Hace 2 años, 7 meses

Hola,

La otra forma es hacer una prueba de conflicto. La mejor manera de averiguar si un tema y / o plugin está causando el problema es cambiar temporalmente su tema a Storefront (https://woocommerce.com/products/storefront/) y deshabilite todos los plugins excepto WooCommerce. Finalmente, pruebe para ver si el problema está resuelto.

Para ayudar con la resolución de problemas: Meks Quick Plugin Disabler (https://wordpress.org/plugins/meks-quick-plugin-disabler/) es un plugin que puede instalar y que recuerda sus plugins actuales para que fácil de volver a encenderlos.

Health Check (https://wordpress.org/plugins/health-check/) es un plugin que le permite deshabilitar temporalmente otros plugins y cambiar temas para esa sesión sin afectar a sus usuarios.

Dado que esto solo ocurre en páginas y acciones específicas, puede comenzar probando plugins relacionados con esas acciones para eliminarlas primero.

Si eso resuelve el problema, entonces uno por uno puede cambiar su tema y volver a habilitar sus plugins, experimentando entre ellos, hasta que encuentre el que está causando el conflicto.

(@jessepearson)

Ingeniero Automático de Felicidad

Hace 2 años, 6 meses

@ssuess Dijiste que viste get_product llamando después de un código como este?


<?php if ( $woocommerce->version >= '3.0' ) : ?>

Se está comprobando lo anterior para asegurarse de que la versión sea superior a 3.0, por lo que esa puede ser la razón. También, version_compare() debe utilizarse en este caso ya que >= es posible que el operador no siempre muestre los resultados correctos.
http://php.net/manual/en/function.version-compare.php

Puede que sea el plugin con ese código el que necesite actualizarse.

(@kbassart)

Ingeniero Automático de Felicidad

Hace 2 años, 6 meses

No hemos tenido noticias tuyas en un tiempo, así que voy a marcar esto como una solución; si tienes alguna otra pregunta, puedes comenzar una nueva conversación.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.