jueves, 17 de noviembre de 2016

Buenos días , aquí tienes tu dosis diaria de WordPress ☕ 

                                                           

Tu dosis diaria de WordPress

Completar automáticamente los pedidos en WooCommerce

En WooCommerce, cuando alguien te hace un pedido de un producto virtual, los pedidos se quedan en espera, y debes cambiarlos tú mismo manualmente el estado al de completado.

Esto ocurre igualmente en todo tipo de producto para los métodos de pago que no sean directos, como contra reembolso o transferencia bancaria, pero en estos casos es casi normal que no se completen automáticamente pues antes debes comprobar si te han pagado mediante la comprobación en el mundo real, que no virtual.

Este comportamiento de WooCommerce es especialmente molesto, como te comentaba, cuando se refiere a productos virtuales y si todos los pagos se realizan mediante pasarelas de pago online, pues por mucho que hayas configurado al final tienes que pasarte cada dos por tres por la lista de pedidos e ir completándolos manualmente, y esto se aleja del concepto de tienda online un poco ¿no?

pagar con tarjeta woocommerce

Afortunadamente puedes forzar a que WooCommerce autocomplete los pedidos, para ello solo tienes que copiar y pegar uno de los siguientes códigos en el archivo functions.php del tema activo (mejor si es tema hijo) o, lo que siempre te recomiendo, en tu plugin de utilidades.

Autocompletar pedidos virtuales de WooCommerce

La opción más segura y lógica es forzar que se autocompleten los pedios virtuales, el código es el siguiente:

/**  * Autocompleta todos los pedidos virtuales  * http://docs.woothemes.com/document/automaticaaly-complete-orders/  */   add_filter( 'woocommerce_payment_complete_order_status', 'virtual_order_payment_complete_order_status', 10, 2 ); function virtual_order_payment_complete_order_status( $order_status, $order_id ) {   $order = new WC_Order( $order_id );   if ( 'processing' == $order_status &&        ( 'on-hold' == $order->status || 'pending' == $order->status || 'failed' == $order->status ) ) {     $virtual_order = null;     if ( count( $order->get_items() ) > 0 ) {       foreach( $order->get_items() as $item ) {         if ( 'line_item' == $item['type'] ) {           $_product = $order->get_product_from_item( $item );           if ( ! $_product->is_virtual() ) {             // cuando encontramos un producto no virtual terminamos y  rompemos el loop             $virtual_order = false;             break;           } else {             $virtual_order = true;           }         }       }     }     // pedido virtual, marcado como completo     if ( $virtual_order ) {       return 'completed';     }   }   // pedido no virtual, lo devolvemos al estado original   return $order_status; }

Autocompletar los pedidos pendientes de WooCommerce

El siguiente nivel de confianza sería forzar el autocompletado de los pedidos que estén en espera, pendientes, con este código:

/**  * Autocompleta los pedidos pagados  */ add_filter( 'woocommerce_payment_complete_order_status', 'bryce_wc_autocomplete_paid_orders' ); function bryce_wc_autocomplete_paid_orders( $order_status, $order_id ) { 	 	$order = wc_get_order( $order_id ); 	if ( $order_status == 'processing' && ( $order->status == 'on-hold' || $order->status == 'pending' || $order->status == 'failed' ) ) { 		return 'completed'; 	} 	 	return $order_status; }

Autocompletar todos los pedidos de WooCommerce

Y, si lo tienes claro, igual el código que necesitas es el siguiente, que autocompleta todos los pedidos, independientemente de su estado:

/**  * Autocompleta todos los pedidos de WooCommerce.  */ add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' ); function custom_woocommerce_auto_complete_order( $order_id ) {      if ( ! $order_id ) {         return;     }      $order = wc_get_order( $order_id );     $order->update_status( 'completed' ); }

Estados de pedido en WooCommerce

Una nota importante para que comprendas lo que hace cada código es saber los estados de pedido de WooCommerce, que son estos:

  • Completo (completed): Pedido finalizado y completo. No requiere ninguna acción.
  • 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
  • Reembolsado (refunded): Se ha devuelto todo o parte del importe al cliente editando el pedido para introducir un reembolso (manual o mediante la pasarela de pago)
  • Fallido (failed): El pago falló o se rechazó

Autocompletar pedidos en WooCommerce con plugins

Cómo no, si prefieres usar un plugin en vez de liarte con códigos puedes hacerlo. Tienes el plugin WooCommerce Autocomplete Orders, que viene a hacer lo mismo que en el último código.

Y, si lo prefieres, también puedes descargarte los códigos anteriores como plugins, que puedas instalar y activar fácilmente, aquí los tienes…

Descargar "Autocompletar pedidos virtuales de WooCommerce" autocompletar-pedidos-virtuales.zip – Descargado 6 veces – 1 KB

Descargar "Autocompletar pedidos pagados de WooCommerce" autocompletar-pedidos-pagados.zip – Descargado 3 veces – 1 KB

Descargar "Autocompletar todos los pedidos de WooCommerce" autocompletar-todos-pedidos.zip – Descargado 3 veces – 1 KB

Sigue leyendo…
2016-11-17  • Fernando

Si quieres saber más sobre lo que ofrecemos en Ayuda WordPress echa un vistazo a los siguientes enlaces …  

Curso de WordPress presencial en Madrid

Hosting especializado WordPress
100% fiable

TU EXPERTO WORDPRESS ONLINE

FORMACIÓN WORDPRESS ONLINE

Facebook Twitter Google Youtube

Ayuda WordPress

Recibes este correo electrónico porque estás registrado en nuestro sitio o has realizado compras.

Darme de Baja

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog