• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Código para procesamiento por lotes en WordPress

Código para procesamiento por lotes en WordPress

Código para procesamiento por lotes en WordPress

[ 16 junio 2021 ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

dashboard optimización

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

En un artículo anterior habíamos visto cómo realizar un procesamiento por lotes usando el plugin locomotive, sin embargo si necesitas más flexibilidad o quieres tener tu propio procesamiento por lotes dentro de un plugin, entonces este artículo te servirá de guía.
 

Generalidades

Si necesitas procesar una gran cantidad de datos, es mejor dividir el proceso en lotes, de esta forma evitarás sobrecargar al servidor e iras procesando tus datos en consultas mucho más pequeñas.

En este artículo veremos dos formas de lograr esto, la primera a través de la recarga del navegador y la otra usando Ajax.

Lo que el código de ejemplo nos mostrará será algo similar a la siguiente imagen:

Demo plugin proceso por lotes

 

Proceso por lotes con recarga del navegador

Este proceso se basa en una función javascript que carga una url con determinados parámetros cada vez que se cumple una condición

El siguiente es un plugin de ejemplo que lo puedes instalar y probar en tu sitio web WordPress, se creará una nueva opción bajo el menú de Herramientas llamada: Proceso por lotes recarga

En el código anterior

  • Creamos una nueva opción de menú en el backend de WordPress que hace referencia a la función dcms_batch_process_options()
  • Dentro de esta función obtenemos los valores de la url, y creamos el botón que dará inicio al proceso
  • También hay una condicional para crear un código javascript con una redirección a una url con parámetros
  • La lógica es que se llame a esa misma página cada vez con parámetros de urls diferentes
  • Cuando ya no se cumpla la condición entonces el proceso habrá terminado

 

Proceso por lotes usando Ajax

Este caso es un poco más complejo, ya que habrá más código javascript de por medio, sin embargo es mucho más óptimo ya que no se tiene que recargar el navegador cada vez.

El proceso se basa en una función javascript que se llama así misma, de manera recursiva, cada vez que se cumple una condición.

El plugin de ejemplo se pude descargar desde Github
En un artículo anterior habíamos visto cómo trabajar con Ajax en WordPress.

 

Código PHP


En el código anterior:

  • Creamos la opción de menú Proceso por lotes Ajax bajo el menú de Herramientas del backend de WordPress
  • Este menú hace referencia a la función function dcms_batch_process_ajax_options() que crea el botón que dará inicio al proceso
  • Además encolamos el archivo javascript que cargará el archivo script.js
  • Tenemos también un hook wp_ajax_dcms_process_batch_ajax que hace referencia a la función dcms_process_batch_ajax() en donde se realizará el proceso enviado por el archivo javascript
  • Dentro de la función del proceso Ajax comprobamos las variables enviadas y realizamos los cambios correspondientes, luego devolvemos los valores actualizados para que los siga procesando el archivo javascript

 

Código Javascript

En el código anterior:

  • Creamos un evento click para el botón y llamamos a la función dcms_process_step()
  • Dentro de la función usamos Ajax y por cada llamada con éxito actualizamos la información
  • Condicionalmente comprobamos el status enviado por el archivo PHP, y de acuerdo a eso llamamos recursivamente a la función o damos por finalizado el proceso

 

Conclusión

Tal como has podido comprobar, es posible realizar tu propia lógica de proceso por lotes a través de código, esto te puede servir para implementar plugins que necesitan procesar gran cantidad de datos, ya que estarás optimizando este proceso realizándolo en bloques más pequeños cada vez, sin saturar los recursos de tu servidor y dando una mejor experiencia de usuario.

 

¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores:

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Procesamiento de datos por lotes en WordPress utilizando LocomotiveProcesamiento de datos por lotes en WordPress utilizando Locomotive
  • Insertar Ajax en WordPress de manera correctaAjax en WordPress de manera correcta
  • Leer más y extracto en WordPressLeer más y Extracto en WordPress
  • Deshabilitar verificación del correo electrónico de administraciónDeshabilitar verificación del correo electrónico de administración
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Personalizar página de gracias de WooCommerce

Propiedades avanzadas de menú en WordPress

Personalizar la página de error 404 en WordPress

Modificar elementos en página de producto de WooCommerce

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados