Documentación / Referencia para desarrolladores: hook de cambios en las reglas

HS Min/Max Quantities · Versión de desarrollo 0.12.0

Referencia para desarrolladores: hook de cambios en las reglas

Responde a los cambios guardados en el conjunto de reglas sin depender de su almacenamiento interno. Este contrato de desarrollo se introdujo en la versión 0.12.0.

El evento público de Min/Max

do_action( 'hs_minmax_rules_changed', $current, $previous, $site_id );
ArgumentoTipoSignificado
$currentarrayReglas normalizadas y guardadas, indexadas por su identificador local.
$previousarrayEl conjunto anterior de reglas legibles.
$site_idintIdentificador del sitio actual de WordPress.

Es una acción, no un filtro. Los valores devueltos por las funciones de respuesta se ignoran. Modificar los arrays recibidos como argumentos no cambia las reglas almacenadas.

Ejemplo: invalida tu propia caché

Crea wp-content/plugins/myshop-minmax-cache/myshop-minmax-cache.php en un sitio de pruebas, pega el siguiente archivo completo y actívalo desde Plugins. Mantén las integraciones personalizadas en su propio plugin para que las actualizaciones no las sobrescriban. Este ejemplo solo vacía una caché que tu propio código tendría que rellenar; no añade ninguna función visible a la tienda.

<?php
/**
 * Plugin Name: My Store Min/Max Cache Integration
 * Description: Invalidates a local derived cache after Min/Max rule changes.
 */
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
add_action(
    'hs_minmax_rules_changed',
    static function ( array $current, array $previous, int $site_id ): void {
        delete_transient( 'myshop_minmax_summary' );
    },
    10,
    3
);

El último 3 indica a WordPress que pase los tres argumentos de la acción. La función de respuesta se registra aunque Min/Max esté inactivo, pero no puede ejecutarse hasta que el plugin emita el evento. Desactiva la integración para detener la invalidación.

Cuándo se emite el evento

  • Después de guardar un conjunto modificado: guardar, activar o desactivar, duplicar, eliminar, confirmar operaciones en lote o añadir reglas.
  • No se emite para escrituras rechazadas o sin cambios.
  • No se emite por escrituras directas en opciones, restauraciones de copias de seguridad o cambios únicamente en los mensajes globales.

Reglas de ejecución

Las funciones de respuesta se ejecutan de forma síncrona mientras se mantiene el bloqueo de configuración. Deben ser breves. No cambies reglas de forma recursiva, no lances excepciones ni hagas solicitudes remotas lentas. Este evento no confirma que haya finalizado toda la solicitud HTTP o todo el proceso de importación. Es preferible invalidar los datos derivados y reconstruirlos en la siguiente lectura.

Detecta varios cambios

No supongas que el evento afecta a una sola regla. Compara las claves para detectar altas y bajas, y los valores de las claves compartidas para detectar modificaciones. Trata los nombres de reglas y los mensajes como texto no fiable y escápalos al mostrarlos. Evita depender de campos de arrays no documentados como si fueran una interfaz CRUD estable.

Hook heredado y límite con Core

plab_minmax_rules_changed se emite después de la nueva acción con los mismos datos. Suscríbete a un solo nombre; de lo contrario, la integración se ejecutará dos veces. El código nuevo debería utilizar hs_minmax_rules_changed.

hs_core_ai_providers pertenece al contrato interno del proveedor Core V1; no es una API pública para personalizar las reglas de la tienda. Esta versión no ofrece una API REST CRUD general documentada ni un filtro público para sustituir los límites efectivos. Las funciones de respuesta de WordPress o WooCommerce registradas dentro del plugin no constituyen puntos de extensión adicionales de Min/Max.

Verifica la integración

  1. En una tienda de pruebas, asigna a myshop_minmax_summary un valor de tu propia caché.
  2. Guarda una regla de prueba inactiva con algún cambio; después, el transient debería haber desaparecido.
  3. Vuelve a asignarle un valor y guarda sin modificar los ajustes; el evento no debería invalidarlo.
  4. Prueba también un cambio en lote. Restaura las reglas de prueba y elimina los datos de prueba.

Referencia contrastada con RuleStore::write(). Las pruebas del observador comprueban el momento de persistencia y las modificaciones correctas, sin cambios y rechazadas. Esto no certifica las funciones de respuesta de terceros.


Volver a todas las guías · Diagnóstico