HS Min/Max Quantities · Guida basata sulla versione 0.12.0
Riferimento sviluppatori: hook di modifica delle regole
Reagisci al salvataggio delle regole senza dipendere dalla memorizzazione interna. È un contratto di sviluppo introdotto nella 0.12.0.
L’evento pubblico Min/Max
do_action( 'hs_minmax_rules_changed', $current, $previous, $site_id );| Argomento | Tipo | Significato |
|---|---|---|
$current | array | Regole normalizzate salvate, indicizzate per ID locale della regola. |
$previous | array | La raccolta precedente delle regole leggibili. |
$site_id | int | ID del sito WordPress corrente. |
È un’azione, non un filtro. I valori restituiti dai callback vengono ignorati. Modificare gli array ricevuti non cambia le regole salvate.
Esempio: invalida la tua cache
Crea wp-content/plugins/myshop-minmax-cache/myshop-minmax-cache.php su un sito di prova, incolla il file completo seguente e attivalo da Plugin. Conserva le integrazioni personalizzate in un plugin separato, così gli aggiornamenti non le sovrascrivono. Questo esempio svuota soltanto una cache che il tuo codice dovrebbe popolare: non aggiunge funzioni visibili al negozio.
<?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
);
L’ultimo 3 indica a WordPress di passare tutti e tre gli argomenti dell’azione. Il callback viene registrato anche con Min/Max inattivo, ma può essere eseguito soltanto quando il plugin emette l’evento. Disattiva l’integrazione per interrompere l’invalidazione.
Quando viene emesso l’evento
- Dopo il salvataggio di una raccolta modificata: salvataggio, attivazione o disattivazione, duplicazione, eliminazione, operazioni in blocco confermate o aggiunta.
- Non per scritture invariate o rifiutate.
- Non per scritture dirette dell’opzione, ripristino di backup o sole modifiche ai messaggi globali.
Regole di esecuzione
I callback vengono eseguiti in modo sincrono mentre è attivo il blocco sulla configurazione: mantienili brevi. Non modificare ricorsivamente le regole, non sollevare eccezioni e non eseguire richieste remote lente. L’evento non conferma il completamento di un’intera richiesta HTTP o importazione. È preferibile invalidare i dati derivati e ricostruirli alla lettura successiva.
Rileva più modifiche
Non presumere che l’evento riguardi una sola regola. Confronta le chiavi per trovare aggiunte o rimozioni e i valori delle chiavi comuni per rilevare modifiche. Considera nomi e messaggi delle regole come testo non affidabile e proteggine l’output. Non usare campi array non documentati come interfaccia CRUD stabile.
Hook precedente e confine del Core
plab_minmax_rules_changed viene emesso dopo la nuova azione con gli stessi dati. Ascolta un solo nome, altrimenti l’integrazione verrà eseguita due volte. Il nuovo codice deve usare hs_minmax_rules_changed.
hs_core_ai_providers appartiene al contratto interno del provider Core V1; non è un’API pubblica per personalizzare le regole del negozio. Questa versione non offre un’API REST CRUD generale documentata o un filtro pubblico per sostituire i limiti effettivi. I callback WordPress/WooCommerce registrati nel plugin non sono ulteriori punti di estensione Min/Max.
Verifica l’integrazione
- Su un negozio di prova, popola
myshop_minmax_summarycon un tuo valore di cache. - Salva una regola di prova inattiva con valori modificati: il transient dovrebbe essere stato rimosso.
- Ricrealo e salva valori invariati: l’evento non dovrebbe invalidarlo.
- Prova anche una modifica in blocco. Ripristina le regole di prova e rimuovi i dati di test.
Riferimento verificato su RuleStore::write(). I test dell’osservatore sorgente coprono il momento del salvataggio e le modifiche riuscite, invariate e rifiutate. Non certificano callback di terze parti.