¿wc_print_notices no muestra ningún mensaje en las páginas de woocommerce?

2 minutos de lectura

He usado plantillas de woocommerce predeterminadas para tienda, carrito y página única. Tampoco he eliminado ningún gancho, pero tampoco recibo ningún mensaje. ¿Alguna idea?

add_action( 'woocommerce_before_single_product',   'Cusotm_wc_print_notices', 10 );
function Cusotm_wc_print_notices()
{
   echo 'Hook is working fine';
}

Recibo este mensaje ‘Hook está funcionando bien’ pero no wc_print_notices();.

Avatar de usuario de Reigel Gallarde
Reigel Gallarde

No estoy muy seguro de cuál es el problema. Su pregunta necesita más detalles. Dicho esto, ¿puede intentar agregar este código a su functions.php de su tema actual?

add_action( 'template_redirect', 'test' );
function test() {

    wc_add_notice( __( 'Sorry there was a problem.', 'woocommerce' ), 'error' );

}

Déjame saber si hace algo.


ACTUALIZAR

Si tienes algo como esto:

add_action( 'woocommerce_before_single_product',   'Cusotm_wc_print_notices', 10 );
function Cusotm_wc_print_notices()
{
   $notices = WC()->session->get('wc_notices');
   print_r($notices);
}

no funcionará porque $notices estará vacío una vez wc_print_notices() se llama.

intenta cambiar la prioridad y obtendrás algo. Debería ser algo como esto:

add_action( 'woocommerce_before_single_product',   'Cusotm_wc_print_notices', 9 ); 

reigelgallarde.me

use prioridad por debajo de 10. Porque WooCommerce está usando 10.

add_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );

  • El código anterior muestra el mensaje de error “Lo sentimos, hubo un problema”. y funciona bien, pero no puedo mostrar wc_print_notices().

    – Saroj Shrestha

    23 de agosto de 2017 a las 7:47

  • en realidad, $avisos = WC()->sesión->get(‘wc_avisos’, array()); no muestra nada, cuando hago var_dump($notices), muestra => array(0) { }.

    – Saroj Shrestha

    23 de agosto de 2017 a las 7:52

  • cuando wc_print_notices se llama una vez, su $notices No conseguirá nada porque todo se borrará.

    –Reigel Gallarde

    23 de agosto de 2017 a las 8:05


  • puede obtenerlo antes de que se llame.

    –Reigel Gallarde

    23 de agosto de 2017 a las 8:05

  • ejemplo, intenta hacer add_action( 'woocommerce_before_single_product', 'Cusotm_wc_print_notices', 9 ); y hacer $notices = WC()->session->get('wc_notices'); en el interior function Cusotm_wc_print_notices(){}. TENGA EN CUENTA que estoy usando 9 como prioridad.

    –Reigel Gallarde

    23 de agosto de 2017 a las 8:11

¿Ha sido útil esta solución?