DPTag s'étend par des crochets WordPress ordinaires. Ce sont les coutures auxquelles l'add-on Pro s'accroche, et elles sont ouvertes à tout plugin. Le plugin gratuit ne porte rien de désactivé derrière elles : là où un crochet n'a pas d'abonné, le comportement gratuit est tout le comportement.
Tous les crochets sont préfixés dptag_. Ajoutez un abonné avec
add_filter() ou add_action() depuis un plugin chargé après DPTag ;
l'add-on s'accroche à plugins_loaded en priorité 20 pour cette raison.
Modèles et détection
dptag_templates (filtre). Les modèles de secteur enregistrés, par clé
de secteur. Ajoutez une clé avec un label, un tableau groups de champs et
un bloc detect facultatif de signaux categories, attributes et
keywords. Chaque champ prend label, type (text, textarea,
country, number, materials), required, et à volonté help et
defaultable. Voir
les modèles de secteur.
dptag_default_template (filtre). La clé utilisée quand rien d'autre
ne s'applique. Reçoit la première clé enregistrée et tous les modèles.
dptag_detect_sector (filtre). Le secteur détecté d'un produit. Reçoit
la clé gagnante, le WC_Product, les scores par modèle et le meilleur
score, nul quand aucun signal n'a correspondu. Renvoyez une autre clé pour
forcer.
Page publique
dptag_passport_themes (filtre). Les palettes proposées dans
Passeports, puis Page passeport. Un thème est [ 'label' => string, 'colors' => [ clé => '#RRGGBB' ] ] avec les clés de couleur des thèmes
intégrés ; les clés inconnues sont ignorées et les manquantes retombent sur
le défaut. La barre de composition est un graphique : gardez un large écart
de luminance entre les deux bouts de la rampe pour que ses segments restent
lisibles sans couleur, et mesurez une nouvelle palette avec
tools/check-themes.php depuis le dépôt du plugin.
dptag_passport_brand_mark (filtre). Remplace le nom de marque de la
page par une image. Renvoyez [ 'url' => string, 'width' => int, 'height' => int ], ou un tableau vide pour garder le texte. Reçoit la
charge du passeport, donc la marque peut varier par passeport.
dptag_passport_cache_key (filtre). Matière supplémentaire pour le
validateur de cache de la page. Tout ce qu'un plugin met sur la page doit
pouvoir invalider les copies que les navigateurs gardent ; renvoyez une
chaîne qui change quand votre contribution change, une URL en général.
Écrans d'administration
dptag_qr_actions (action). Se déclenche à côté du téléchargement PNG
d'un QR code, avec un contexte passport (la boîte de l'éditeur) ou
product-list (la fenêtre de la liste des produits). Imprimez-y d'autres
commandes ; la grille de modules du code est publiée dans
window.dptagQrModel pour qu'un autre moteur de rendu la parcoure, et qu'un
second format soit le même code.
dptag_appearance_after_themes (action) et
dptag_appearance_save (action). La première se déclenche dans le
formulaire de l'écran Page passeport, après la liste des thèmes, avec
l'identifiant du thème actif ; la seconde à l'enregistrement de ce
formulaire, nonce et capacité déjà vérifiés. Rendez un contrôle dans l'une,
lisez-le dans $_POST dans l'autre.
dptag_wizard_welcome_takeover (filtre) et
dptag_wizard_welcome_render (action). Renvoyez vrai depuis le filtre
pour remplacer la première étape de l'assistant par la vôtre, puis rendez-la
dans l'action. dptag_wizard_header_actions (action) se déclenche à côté
du titre des étapes 2 à 4 avec le numéro d'étape, pour une sortie du chemin
manuel.
dptag_is_pro_active (filtre). Renvoyez vrai pour dire à l'écran
Passer à Pro qu'une licence Pro est active, pour qu'il cesse de vendre ce
que l'utilisateur a. Il n'adapte que le texte et ne conditionne rien.
IA
dptag_ai_request_auth (filtre). Les identifiants joints à une requête
IA. Vide par défaut, ce qui est l'échantillon gratuit par site ; renvoyez
[ 'key' => $cle_de_licence ] pour facturer le passage à un compte. Reçoit
les arguments de la complétion. Ce qu'un plugin renvoie est fusionné
par-dessus une clé tapée sur l'écran Crédits IA.
dptag_ai_product_input (filtre). Le texte produit envoyé à l'IA, une
ligne Libellé : valeur par bloc, avec le WC_Product. Ajoutez une ligne
pour une donnée tenue ailleurs, dans un champ personnalisé par exemple, pour
que l'IA la lise. Court et factuel ; c'est une entrée de prompt, pas du
balisage.
dptag_ai_after_complete (action). Se déclenche après une réponse IA
réussie avec le résultat décodé, qui inclut les compteurs de quota ou
d'échantillon. Sert à persister un solde de crédits pour un compteur.
dptag_ai_meter (filtre). Le balisage du compteur de crédits affiché
sous les boutons IA. Reçoit le compteur de l'échantillon gratuit ; renvoyez
le vôtre. Le résultat passe par wp_kses().
dptag_ai_quote_slot (action). Se déclenche sous les boutons de
lancement des panneaux de lot avec le nombre de produits que le passage
remplirait. Rendez-y une estimation de coût.
dptag_ai_batch_takeover (filtre) et
dptag_ai_batch_takeover_actions (action). Renvoyez vrai depuis le
filtre, qui reçoit le nombre de produits et si le Pro est actif, pour
remplacer la boucle de lot au premier plan du plugin gratuit par votre propre
passage ; puis rendez votre commande dans l'action. La barre de progression
partagée reste en place pour que vous la pilotiez.
dptag_api_base (filtre). L'URL de base du service IA, pour un
environnement de développement.
Conventions
Les crochets sont stables une fois publiés : un paramètre s'ajoute à la fin,
jamais retiré ni réordonné. Les préfixes, noms d'options et clés de méta du
plugin commencent tous par dptag ; le code du plugin ne lit jamais les
options d'un autre plugin, et la même chose est demandée à un plugin qui
lirait celles de DPTag, qui ne sont pas une API. L'API publique des données
est la route REST.