Pedidos bien pagados pero aparecen cancelados
-
Buenos días
Tengo dos webs con este plugin una de ellas con el premium y otra con el gratuito.
En ambas está configurado terminal de la misma forma puesto que usamos el mismo, pero en el plugin gratuito, los pedidos aparecen cancelados y están correctamente pagados.En woocommerce dentro del pedido me pone lo siguiente:
El pedido sin pagar ha sido cancelado – se ha alcanzado el limite de tiempo. El estado del pedido cambió de Pendiente de pago a Cancelado.
The page I need help with: [log in to see the link]
-
Hola @manovoa,
¿Los tienes en el miso hosting? En cualquier caso, prueba a realizar esta configuración en el terminal https://plugins.joseconti.com/tutoriales/como-configurar-el-terminal-de-redsys-para-notificaciones-via-url/
A ver si así se soluciona.
Saludos
Hola Jose
Si tengo ambas webs en el mismo hosting y la configuración la tengo tal cual me indicas.Gracias
Que extraño @manovoa,
¿Tienes por ejemplo algún plugin de seguridad en el sitio que no hay las notificaciones? Por si pudiera estar truncando el enlace que llega de Redsys.
Si es raro, tengo instalado el siguiente plugin
Security Optimizer de siteground
Pero no parece que sea muy agresivo
Puedes hacer una prueba, @manovoa, a ver si tras el pago eres redirigido al sitio y la URL donde vas a parar es muy larga, y debería tener entre otras cosas el Ds_Merchant_Parameters (o algo así, estoy escribiendo de memoria). Debería ser muy largo.
Tengo puesto que cuando finalice la compra se le redirija a la página de gracias.
Hola @manovoa,
Pero cuando llegas a la página de agradecimiento de WooCommerce, ¿La URL es larga y tiene el Ds_Merchant_Parameters?
Hola, es correcto, @manovoa.
He revisado el código porque no estaba seguro si había realizado un cambio, y si que lo hábía realizado, así que se deberían marcar como pagados.
Lo único que se me ocurre, es que la función is_order_received_page() esté devolviendo false porque no está configurado de esta forma en tu WooCommerce, es decir, que estes controlando de alguna forma que no es WooCommerce la página de agradecimiento.
Si fuera así, tendría una fácil solución, y te podría explicar como solucionarlo.
Hola Jose, como bien indicas la página de agradecimiento es una creada con elementor.
¿Debo hacer algún cambio?
Muchas gracias
Buenos días Jose
Aún tengo pendiente esta incidencia hoy hemos tenido dos pedidos cancelados y si han sido pagados. Tengo otra web con el mismo cliente pero con tu plugin premium y no se si lo compro va a ocurrir el mismo problema.
También te comento que no estoy muy contento con el plugin e pago porque no puedo hablitar el pago dentro de la misma web (que era el objetivo de compra), porque me no me funciona por el plugin de correos y no me diste contestacion 🙁 (La incidencia la teníamos por correo)
¿qué podemos hacer?
Gracias
PD: Sé que estás muy liado porque te sigo en X, pero necesitaría dar solución esto
Hola @manovoa,
Disculpa que se me pasó el mensaje. Añade este código al archivo fuctions.php o a un plugin de snippets
<?php
/**
* Ejecuta redsys_mark_order_as_paid desde wp_head si estamos en la página de "order received"
* y hay una key válida en la URL.
*/
add_action( 'wp_head', 'redsyslite_force_mark_order_as_paid_on_thankyou_page_2' );
/**
* Force mark order as paid on thank you page.
*
* @return void
*/
function redsyslite_force_mark_order_as_paid_on_thankyou_page_2() {
if ( ! is_order_received_page() ) {
return;
}
if ( isset( $_GET['key'], $_GET['Ds_MerchantParameters'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$order_key = sanitize_text_field( wp_unslash( $_GET['key'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$order_id = wc_get_order_id_by_order_key( $order_key );
if ( $order_id && is_numeric( $order_id ) ) {
redsyslite_mark_order_as_paid( $order_id );
}
}
}En cuanto al tema del premium, no olvidemos que no es mi plugin el que provoca el problema, es el de Correos el que causa el problema por que hace algo que rompe cosas porque algo hace mal, lo mismo que sucede con Elementor, que rompe cosas de WooCommerce muchas veces. No es sencillo muchas veces encontrar soluciones a problemas que causan terceros y que deberían ser ellos quien los deberían arreglar, yo intento muchas veces arreglar cosas que hacen mal otros plugins, pero no siempre se puede.
Por poner un ejemplo, esta función global del plugin premium
/**
* Check and ensure the given URL includes the site's domain.
*
* @param string $url The URL to check.
* @return string The updated URL with the domain ensured.
*/
public function check_url( $url ) {
// Obtener el dominio actual del sitio.
$site_url = home_url();
// Verificar si la URL incluye el dominio.
if ( strpos( $url, $site_url ) !== 0 ) {
// Si no incluye el dominio, añadirlo.
$url = trailingslashit( $site_url ) . ltrim( $url, '/' );
}
return $url;
}Es exclusivamente para arreglar un chapuza de Elementor que cambia el funcionamiento del core de WooCommerce.
Buenos días Jose
1- Gracias por el código, lo he introducido a ver si se arregla, te voy informando
2- Pondré la incidencia al plugin de correos a ver si me dan solución
3- El código que me mandas de elementor, no me ha quedado claro si tengo que hacer algo o es simplemente de ejemplo.
Gracias
Hol @manovoa
No, no hay que hacer nada con esa función, está en el core del plugin premium y lo utiliza por defecto para asegurarse que la URL está completa.
Sobre el plugin de Correos, hoy me he enterado que también da problemas con Apple Pay ya que no debe registra los gastos de envío de forma correcta, así que cuando se accede a la función de WooCommerce que recupera los posibles tipos de envío por lo que hay en la cesta y la dirección del cliente, la función de WooCommerce devuelve que no existen métodos de envío para la dirección del cliente.
Creo que todos los problemas están viniendo de lo mismo, seguramente Correos no añade sus métodos de envío de forma estándar (como se debe hacer) a WooCommerce, los debe de inyectar de alguna forma propia, lo que provoca que los plugins no puedan recuperarlos ya que los inyectan ellos en vez de registrarlos de de forma correcta en WooCommerce.
Hola @jconti
Que bueno lo que me dices, parece que van por libres.
Además no hay manera de contactar con el departamento tecnico, en su web no hay nada
The topic ‘Pedidos bien pagados pero aparecen cancelados’ is closed to new replies.