Filtrado Dinámico de Productos en WordPress con PHP y JavaScript

Clase 15 de 29Curso Profesional de WordPress

Resumen

¿Cómo pasar atributos desde PHP a JavaScript en WordPress?

La conexión entre PHP y JavaScript es crucial para muchos desarrolladores de WordPress, ya que permite enviar datos del servidor al cliente de forma eficiente. En esta guía, aprenderás a pasar atributos desde PHP a JavaScript utilizando las funciones adecuadas para garantizar una interacción fluida en tu proyecto.

¿Qué función utilizamos para enviar datos de PHP a JavaScript?

En WordPress, utilizamos la función wp_localize_script() para enviar información a scripts JavaScript:

function mi_funcion_custom_scripts() {
    // ... Registro de estilos y scripts ...
    
    wp_localize_script(
        'handle-del-script', // Nombre del script registrado
        'nombreObjetoJS',    // Nombre del objeto JavaScript
        array(
            'propiedad' => 'valor'
        )
    );
}
  • Primer parámetro: El nombre del script JavaScript al que le estás adjuntando los datos.
  • Segundo parámetro: El nombre del objeto JavaScript que contendrá los datos.
  • Tercer parámetro: Un array con los datos que deseas pasar al script JavaScript.

¿Cómo definir y enviar datos con JSON?

Para definir la información que se enviará y procesarla en JavaScript, puedes utilizar el formato JSON:

  1. Definición del objeto de datos:

    let data = {
        accion: 'nombre_funcion_php',
        categoria: $('#miSelector').val()
    };
    
  2. Enviar el dato al servidor: La función $.ajax es útil en este contexto para gestionar peticiones asíncronas.

    $.ajax({
        url: objetoGlobalJS.miURL,
        method: 'POST',
        data: data,
        beforeSend: function() {
            $('#idElemento').html('Cargando...');
        },
        success: function(response) {
            // Procesar la respuesta
        },
        error: function(error) {
            console.error(error);
        }
    });
    

¿Cómo definir y registrar un endpoint en PHP?

Para recibir y procesar la solicitud Ajax en el servidor, define la función PHP y regístrala usando las acciones de WordPress:

function mi_funcion_php() {
    // Lógica del filtrado de productos o similar

    $resultado = array(); // Array con los resultados
    
    wp_send_json_success($resultado);
}

add_action('wp_ajax_nombre_funcion_php', 'mi_funcion_php');
add_action('wp_ajax_nopriv_nombre_funcion_php', 'mi_funcion_php');
  • Acción wp_ajax_: Registra el gancho para usuarios autenticados.
  • Acción wp_ajax_nopriv_: Registra el gancho para usuarios no autenticados.

¿Cómo procesar y mostrar los datos en JavaScript?

Una vez que tienes los datos de vuelta en JavaScript, como una respuesta JSON, crea la lógica para mostrar los datos en tu interfaz de usuario:

let html = '';
data.forEach(function(item) {
    html += `<div class="col-4 mb-3">
        <figure>
            <img src="${item.imagen}" alt="${item.titulo}" />
        </figure>
        <h4>${item.titulo}</h4>
        <a href="${item.link}" title="${item.titulo}">Ver Producto</a>
    </div>`;
});
$('#idContenedor').html(html);

¿Qué hacer en caso de errores en AJAX y cómo corregirlos?

Los errores pueden surgir por diversas razones, como la falta de parámetros. Para identificar y corregir estos errores:

  1. Inspeccionar la consola: Verifica mensajes de error que pueden dar pistas sobre parámetros faltantes o errores de sintaxis.
  2. Revisar las funciones PHP y AJAX: Asegúrate de que los datos se están enviando y recibiendo correctamente.

Con esta guía, ahora dispones de las herramientas necesarias para gestionar la interacción entre PHP y JavaScript en WordPress con confianza. A medida que profundices, descubrirás más funcionalidades y posibilidades, ¡continúa aprendiendo y explorando!