Documentation

Hooks et filtres pour développeurs

Chaque action et chaque filtre que publie le plugin gratuit, avec ses paramètres et son usage, pour qu'un autre plugin ajoute un secteur, une palette, un logo ou sa propre clé IA sans toucher à DPTag.

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.