Pregunta sobre WooCommerce de Wordpress:

Wc_add_notice () no funciona en la página de pago

Un usuario preguntó 👇

Oye Ann,

solo notamos un problema con la función wc_add_notice () en la página de pago. Esto funcionó durante mucho tiempo, pero ahora el mensaje ya no se muestra.

Si usamos wc_add_notice('Some error information text','error') solicita el error en la página de pago y se asegura de que la verificación no continúe («Hay algunos problemas …»), también hasta ahora. Pero ya no muestra el mensaje rojo «Algún texto de información de error».

Por cierto: en el gráfico funcionan tanto wc_add_notice () como wc_print_notice (). Pero al verificar wc_add_notice () solo desencadena el error / detiene el proceso de verificación y wc_print_notice () solo imprime el mensaje.

Más precisamente, usamos wc_add_notice () para aplicar un comando mínimo a la acción «woocommerce_check_cart_items» como se muestra en https://stackoverflow.com/questions/55038477/set-a-minimum-order-amount-in-woocommerce

Aquí está nuestro código completo: siempre mostraba el mensaje en el carrito y en la página de pago. Ahora el mensaje solo se muestra en el gráfico pero ya no en la página de pago:

add_action('woocommerce_check_cart_items', 'set_min_total_by_country');
function set_min_total_by_country() {
	
    if(WC()->customer->shipping_country == "DE") { $minimum_cart_total = 30; }
    else { $minimum_cart_total = 70; }

	if(is_cart() || is_checkout()) {
		if(WC()->cart->subtotal < $minimum_cart_total) {
			wc_add_notice( 
				('Sie haben Ihren Mindestbestellwert von <b>'.number_format($minimum_cart_total,2,',','').' '.
                 get_woocommerce_currency_symbol(get_option('woocommerce_currency')).'</b> noch nicht erreicht. Ihr aktueller Bestellwert beträgt <b>'.
                 number_format(WC()->cart->subtotal,2,',','').' '.get_woocommerce_currency_symbol(get_option('woocommerce_currency'))).'</b>.','error');
        }
    }
}

¿Alguien tiene una idea de por qué el mensaje de error ya no se muestra en la página de pago cuando usa wc_add_notice ()?

Este tema fue modificado por última vez hace 12 meses por. Este tema fue modificado por última vez hace 12 meses por.

(@nickirongate)

Hace 12 meses

¡Hola! Si copio / pego su código exacto, recibo la notificación en la página del gráfico:

Sie haben Ihren Mindestbestellwert von 70,00 € noch nicht erreicht. Ihr aktueller Bestellwert beträgt 10,00 €.

Captura de pantalla: https://d.pr/i/UosZ7K

Cuando procedo con el cheque, recibo esta notificación:

There are some issues with the items in your cart. Please go back to the cart page and resolve these issues before checking out.

Captura de pantalla: https://d.pr/i/JYUuHa

Es el ‘error’ en la notificación lo que impide la verificación.

Si desea personalizar ese mensaje de verificación, querrá mover específicamente esa cadena o, como beneficio adicional, puede enviar el error de verificación a una página personalizada, como se explica aquí: https://gist.github.com/bekarice/99d479e6c91880b3b80a21a0b3415b7f#gistcomment-3106188

Esta respuesta fue modificada hace 12 meses por.

(@doffine)

Hace 12 meses

Hola @nickirongate,

gracias por volver con nosotros! Lo que averiguó es exactamente el problema. Queremos el mensaje …

Sie haben Ihren Mindestbestellwert von 70,00 € noch nicht erreicht. Ihr aktueller Bestellwert beträgt 10,00 €.

… también se mostrará en la página de pago, no solo en la página del carrito.

El wc_add_notice () se muestra en ambas páginas, pero el mensaje se muestra solo en la página del gráfico. ¿No fue antes que los mensajes wc_add_notice () también se imprimen en la página de pago?

Hemos notado que el mensaje se puede mostrar en la página de pago usando wc_print_notice (). Pero si usamos SÓLO wc_print_notice () (aunque con un parámetro de error configurado) en la página de pago, la verificación no se bloquea. Pero debe frustrarse. Entonces, la única posibilidad que podemos usar en este momento parece ser realizar ambas funciones en sucesión en la página de pago:

wc_add_notice( 
				('Sie haben Ihren Mindestbestellwert von <b>'.number_format($minimum_cart_total,2,',','').' '.
                 get_woocommerce_currency_symbol(get_option('woocommerce_currency')).'</b> noch nicht erreicht. Ihr aktueller Bestellwert beträgt <b>'.
                 number_format(WC()->cart->subtotal,2,',','').' '.get_woocommerce_currency_symbol(get_option('woocommerce_currency'))).'</b>.','error');

Y

wc_print_notice( 
				('Sie haben Ihren Mindestbestellwert von <b>'.number_format($minimum_cart_total,2,',','').' '.
                 get_woocommerce_currency_symbol(get_option('woocommerce_currency')).'</b> noch nicht erreicht. Ihr aktueller Bestellwert beträgt <b>'.
                 number_format(WC()->cart->subtotal,2,',','').' '.get_woocommerce_currency_symbol(get_option('woocommerce_currency'))).'</b>.','error');

Donde la primera función bloquea el cheque y la segunda impresión hace el mensaje.

Esto nos parece un poco extraño.

(@bbfunk)

Hace 11 meses, 1 semana

Hola Doffine,

Respondo a tu problema porque tengo lo mismo: en el plugin de Woocommerce que desarrollé, la función wc_add_notice () también funcionó antes de actualizar Woocommerce a la versión 3.9.0. Desde que realicé la actualización, las notificaciones no se muestran correctamente en la página de pago. Así que piense que la actualización genera el problema.

¿Encontraste una solución para solucionarlo?

Si es así, me resulta extraño conocer esta solución;).

¡Gracias por su respuesta!

buena voluntad 😉

(@doffine)

Hace 11 meses, 1 semana

Hola @bbfunk,

también creemos que la actualización creó el problema. Desafortunadamente, no hemos encontrado una solución a esto, pero estamos esperando que @nickirongate responda a nuestra última publicación aquí.

Supongo que en su primera = última respuesta no ha encontrado el problema hasta ahora. Así que escribí nuestra segunda respuesta sin respuesta hasta ahora.

¿Crees que responderá aquí de nuevo, o puede ser necesario que abras un segundo hilo para esto?

Muchos saludos, -doffine

(@bbfunk)

Hace 11 meses, 1 semana

Hola de nuevo Doffine,

No sé si nicirongate responderá aquí nuevamente, pero me gustaría resolver este problema, ya que el último problema es que tengo que terminar mi plugin :). Intentaré publicitarme de diferentes formas para resolver el problema, pero sin éxito … Me pregunto si intentaré agregar mis propios anuncios en lugar de anuncios de Woocommerce …

Todo lo mejor

(@doffine)

Hace 11 meses, 1 semana

@bbfunk,

¿Ve la oportunidad de contactarlos por ticket o algo así? Parece que han perdido interés en este tema aquí en wordpress.org.

-doffine

(@nickirongate)

Hace 11 meses, 1 semana

Hola, lamento que esto haya caído. Tratamos de brindar buenas respuestas en el foro donde podemos, pero como es voluntario, a veces tenemos que enfocar nuestros esfuerzos en otras áreas.

No he podido encontrar ningún movimiento sobre este problema específico, pero dado que es un duplicado, le sugiero que abra un problema en el código de repositorio. Hice una búsqueda rápida y no pude encontrar esto como un problema existente.

Puede presentar una edición aquí: https://github.com/woocommerce/woocommerce/issues/new/choose

(@bbfunk)

Hace 11 meses, 1 semana

Hola NickGreen,

Gracias por su respuesta;).

Tampoco encontré ningún problema en la Web … pero esto probablemente se deba a que el caso en mi plugin, como en el plugin doffine, tiene que mostrar ciertas notificaciones después de hacer clic en el botón de verificación.

Probablemente solucione el problema en Github mañana.

Todo lo mejor

(@bbfunk)

Hace 11 meses, 1 semana

@doffine

Probablemente haya una forma de solucionarlo. Quiero resolverlo lo antes posible, pero creo que tenemos que buscar la solución.

Todo lo mejor

(@doffine)

Hace 11 meses, 1 semana

@bbfunk,

Hola. Es genial que @nickirongate regresara a nosotros con la sugerencia de archivar una edición en GitHub y también creo que esta es la mejor / única posibilidad para que arreglemos este error.

¿Podrías volver a publicar aquí una vez que recibas comentarios sobre Github?

Muchos saludos, -doffine

(@bbfunk)

Hace 11 meses, 1 semana

Hola,

En mi caso encontré otra solución para resolver mi problema: si no se cumplen las condiciones para la remisión al formulario de pago en la pasarela de pago, simplemente redirijo al cliente a la página del chárter después de agregar la notificación personalizada:

wc_add_notice(__('shit... a problem occurred, you need to remove a product from your cart!','my_gateway'), 'error');

return $woocommerce->cart->get_cart_url();

Funciona perfectamente.

Todo lo mejor

Esta respuesta fue modificada hace 11 meses, hace una semana por.

(@doffine)

Hace 11 meses, 1 semana

Hola @bbfunk,

Veo tu enfoque, se ve bien. Tuve que usarlo WC() en vez de $woocommerce, de lo contrario tengo un

Fatal error: Uncaught Error: Call to a member function get_cart_url() on null

Pero luego «return WC () -> cart-> get_cart_url ();» no hace nada. No redirecciona o algo así. Solo devuelve la URL. Así que tuve que hacer

wp_redirect(WC()->cart->get_cart_url());

Así que funciona a las mil maravillas. Es incluso mejor que el Cheque para mostrar un mensaje de error y el cliente debe hacer clic en Atrás para continuar. Este «clic» ahora se realiza para el cliente para que pueda ajustar su gráfico directamente sin hacer más clic.

Gracias por esta gran idea! -doffine

(@wallacelin)

Hace 11 meses, 1 semana

Hola, ¿alguien más tiene problemas para usarlo? wc_add_notice? Tengo un código personalizado usando el filtro woocommerce_add_to_cart_validation restringir el carrito para que no agregue productos por categorías y mostrar una notificación, lo que sucede pero falta el mensaje de texto.

Mi código es el siguiente:

$message = __( 'Breakfast and non-breakfast items cannot be ordered at the same time.', 'woocommerce' );
wc_add_notice( $message, 'error' );

No funciona incluso si lo cambio a wc_add_notice( 'Hello world!', 'error' ); y estoy seguro de que funcionó antes de actualizar WC a 3.9.1. (mi versión es WordPress 5.3.2.)

Veo que se ha abierto un hilo en github pero no creo que este problema esté resuelto. Continuaré probando para ver si es solo mi código.

(@bbfunk)

Hace 11 meses, 1 semana

@doffine

Hola, sí, esta solución funciona a las mil maravillas y es lo mejor para la experiencia del usuario.

Todo lo mejor

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

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