Avisos
Vaciar todo

Pedidos pendiente de pago en woocommerce al pagar  

 
VICTOR
 VICTOR
Usuario activo

Buenas, llevo unos días en los que al pagar correctamente los clientes, los pedidos se quedan en pendiente de pago y posteriormente se cancelan, por lo que tengo que completarlos manualmente.

He abierto un ticket de soporte y no han dado con la solución. Parece que no es nada referente al servidor: "A nivel servidor no se aplica ningún tipo de medida de seguridad para este tipo de comunicaciones, las cuales compruebo que se realizan correctamente" "Veo que en la plataforma de la TPV también aparece bien la ejecución de la petición y sin ningún tipo de error, está funcionando como debería."

Da igual el método de pago que utilice los clientes (redsys, stripe, bizum), el pago se realiza pero queda pendiente de pago/cancelado.

No he realizado ningún cambio de configuraciones últimamente.

Tengo el plugin Redsys de José Conti y el plugin oficial de stripe que siempre me ha funcionado.

Un saludo y muchísimas gracias.

Contenido solo visible a usuarios registrados

Citar
Respondido : 07/04/2022 11:31 am
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Victor, 

En este caso envíanos una captura de la nota que se marca en un pedido cuando se procesa, de esta forma podemos verificarlo con mayor detalle. 

image

 

De manera general ten en WooCommerce las ordenes no se completan de forma automática, sino que es el administrador es quien debe marcarlos como completados. Sin embargo, existen diferentes formas para marcar el pedido de en espera ha completado automáticamente, una opción es usar algún plugin como  ->  https://wordpress.org/plugins/autocomplete-woocommerce-orders/

image

Solo debes configurar las opciones sobre que tipo de pedidos deseas se completen,

Por otro lado también puedes añadir un código en el function.php de tu tema (Preferiblemente un tema hijo) que te permita autocompletar de forma automática los pedidos, puedes verificar más detalles sobre estas configuraciones en el siguiente enlace ->  https://soporteforo.webempresa.eu/guia/cambiar-estado-del-pedido-en-woocommerce-automaticamente/

Verifica esto y nos comentas como ha ido todo

Un Saludo 

 
ResponderCitar
Respondido : 07/04/2022 12:29 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

VICTOR
 VICTOR
Usuario activo

@karen Buenas, gracias por responder.

Tengo instalado el plugin de Autocomplete WooCommerce Orders -> Configurado para autocompletar productos digitales.
Nunca había tenido problemas de este tipo hasta hace 2 semanas, que se ha dejado de completar. Aun así, debería de quedarse en procesando, pero no, se queda pendiente de pago/cancelado.

Te adjunto captura de las notas del pedido.

1

 
Un saludo.

ResponderCitar
Respondido : 07/04/2022 3:19 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Victor, 

En este caso es posible que el plugin esté generando un error, prueba añadir el código en function.php de tu tema y comprobar si al hacer esto se completa de forma correcta una orden. 

 

Por otro lado también puedes añadir un código en el function.php de tu tema (Preferiblemente un tema hijo) que te permita autocompletar de forma automática los pedidos, puedes verificar más detalles sobre estas configuraciones en el siguiente enlace ->  https://soporteforo.webempresa.eu/guia/cambiar-estado-del-pedido-en-woocommerce-automaticamente/

Verifica esto y nos comentas como ha ido todo

Un Saludo 

ResponderCitar
Respondido : 07/04/2022 3:34 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

VICTOR
 VICTOR
Usuario activo

Buenas de nuevo y gracias por la respuesta @karen

Estamos probando quitando el plugin y activando el código del tutorial y parece que va bien, excepto que completa todos los pedidos (incluido los productos físicos que necesito que se queden procesando).

¿existe alguna modificación del código para autocompletar los productos virtuales y dejar en procesando los productos físicos?

Un saludo.

ResponderCitar
Respondido : 14/04/2022 9:56 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Victor.

Puedes modificar el estado el en que quieres que se queden, por ejemplo, si quieres que se queden procesando:

// Actualiza automáticamente el estado de los pedidos a procesando
add_action( 'woocommerce_order_status_processing', 'actualiza_estado_pedidos_a_completado' );
add_action( 'woocommerce_order_status_on-hold', 'actualiza_estado_pedidos_a_completado' );
function actualiza_estado_pedidos_a_completado( $order_id ) {
global $woocommerce;

//ID's de las pasarelas de pago a las que afecta
$paymentMethods = array( 'redsys', 'bacs', 'cheque', 'cod', 'paypal' );

if ( !$order_id ) return;
$order = new WC_Order( $order_id );

if ( !in_array( $order->payment_method, $paymentMethods ) ) return;
$order->update_status( 'processing' );
}

 

Solo modificamos la linea " $order->update_status( 'processing' ); " indicando el estado en el que se quedar el pedido, en este caso Procesando.

Puedes poner el estado que quieras:

  • Completo (completed): Pedido finalizado y completo. 
  • Pendiente  (pending payment): Pedido recibido, sin recibir aún el pago
  • Procesando (processing): El pago se ha recibido y se ha actualizado el inventario para eliminar la unidad de artículo. El pedido está pendiente de completar manualmente
  • En espera (on hold): Pendiente de que se realice el pago pago. El artículo se descuenta del inventario pero antes de que se complete hay que confirmar el pago y completarlo (manualmente)
  • Cancelado (cancelled): Pedido cancelado, ya sea por parte del cliente o de un gestor de la tienda

 

Para los productos virtuales puedes utilizar lo siguiente:


add_action('woocommerce_thankyou', 'we_autocomplete_virtual_orders', 10, 1 );
function we_autocomplete_virtual_orders( $order_id ) {
if( ! $order_id ) return;
// Get order
$order = wc_get_order( $order_id );
// get order items = each product in the order
$items = $order->get_items();
// Set variable
$only_virtual = true;
foreach ( $items as $item ) {
// Get product id
$product = wc_get_product( $item['product_id'] );
// Is virtual
$is_virtual = $product->is_virtual();
// Is_downloadable
$is_downloadable = $product->is_downloadable();
if ( ! $is_virtual && ! $is_downloadable ) {
$only_virtual = false;
}
}
// true
if ( $only_virtual ) {
$order->update_status( 'completed' );
}
}

 

Lo mismo que el anterior, si quieres que el producto se quede en otro estado solo tienes que modificar la linea " $order->update_status( 'completed' ); "

 

Un saludo

ResponderCitar
Respondido : 14/04/2022 11:12 am

Cursos Gratuitos WordPress

VICTOR
 VICTOR
Usuario activo

@pepesoler muy buenas y gracias por la respuesta.

He creado un fragmento de código con cada código que has enviado de esta manera, pero aún no funciona bien del todo, se me ha quedado "pendiente de pago" en vez de procesando un producto físico.

Quiero que los productos físicos se queden "Procesando" y los productos virtuales en "Completado".

Adjunto captura del orden de los fragmentos (he copiado tal cual el código).

fragmentos de código

 

No sé si hay que hacerlo de esta manera o en un solo fragmento, o cambiando el orden...
Un saludo.

ResponderCitar
Respondido : 19/04/2022 12:07 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Victor.

Con el código que te indique los productos físicos se quedan en procesando:

$order->update_status( 'processing' );

 un producto físico

Solo es un producto o son todos lso productos físicos ?

No me queda claro si solo es un producto o son todos 

 

Un saludo

 

 

ResponderCitar
Respondido : 19/04/2022 12:36 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

VICTOR
 VICTOR
Usuario activo

Muy buenas y gracias @pepesoler

En la web tengo productos físicos y también productos digitales.

Quiero que cuando haya un producto físico en el pedido, se quede "procesando".
Si hay un producto físico y también un producto virtual, se quede "procesando".
Si solamente hay productos virtuales en el pedido, que se quede "completado".

Muchas gracias por la ayuda.

ResponderCitar
Respondido : 22/04/2022 11:06 am
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Victor, 

En WooCommerce los productos de tipo virtual se autocompletan de forma automáticamente, pero si usas el código de autocompletados todos pasaran a completados, en este caso si solo deseas que sean los productos virtuales se completen no necesitas añadir ningún código, prueba desactivar los códigos que usas y revisar que tus productos virtuales este de este tipo, luego comprueba si al procesar una orden de estos se complementen automáticamente. 

Ten en cuenta que si lo que buscas es que ciertos tipos de productos se completen y otros no es posible necesites un código a la medida, en este caso puedes consultar con nuestro directorio de claboradores quienes puede ayudarte a configurar todo lo que necesitas. 

Un Saludo 

Esta publicación ha sido modificada el hace 1 mes por Karen Rios
ResponderCitar
Respondido : 22/04/2022 12:51 pm

wpdoctor-revisa-la-salud-de-tu-wordpress