Vous créez une intégration personnalisée, modifiez l'apparence du bouton de liste de souhaits ou réagissez lorsqu'un client enregistre un produit ? SaveTo Wishlist vous offre des filtres et des actions WordPress pour chacun de ces travaux, ainsi qu'une API REST pour lire et modifier les listes de souhaits. Cet article répertorie les hooks et les routes fournis avec SaveTo Wishlist Lite 1.1.8, avec les arguments que chacun reçoit et un exemple fonctionnel pour les cas courants.
Avant de commencer
- Vous avez besoin de SaveTo Wishlist Lite et de WooCommerce actifs sur le site. SaveTo Wishlist Pro et Registry ajoutent leurs propres hooks, qui ne sont pas abordés ici.
- Chaque nom de hook commence par
stwlite_. - Placez votre code dans un petit plugin personnalisé ou un plugin d'extraits de code. Ajoutez les filtres de placement (voir ci-dessous) dans un fichier de plugin, pas dans le fichier
functions.phpd'un thème. - Chaque hook et route de cet article existe dans SaveTo Wishlist Lite 1.1.8. Un hook qui n'est pas répertorié ici ne fait pas partie de l'interface publique, ne vous y fiez donc pas.
Hooks
Chaque hook ci-dessous liste son type, les arguments qu'il reçoit et ce qu'il fait. Lorsque vous enregistrez un rappel qui prend plus d'un argument, passez le nombre d'arguments comme quatrième paramètre de add_filter() ou add_action(), comme le montrent les exemples.
Sortie du bouton
Ces filtres modifient le balisage du bouton de liste de souhaits avant son affichage. Le plugin passe le balisage final par wp_kses(), donc les balises et attributs en dehors de sa liste autorisée sont supprimés. Pour autoriser plus de balises, utilisez le filtre stwlite_allowed_button_html, qui reçoit le tableau de la liste autorisée.
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_wishlist_button_html | Filtre | $button_html, $product, $placement, $style, $button_label | Filtre le balisage de chaque bouton de liste de souhaits que le plugin crée. Il s'exécute même lorsque le bouton est masqué, auquel cas $button_html est une chaîne vide. |
stwlite_wishlist_button_shop_html | Filtre | $button_html, $product, $placement, $style, $color_options | Filtre le bouton sur les pages de boutique et d'archive. |
stwlite_wishlist_button_product_html | Filtre | $button_html, $product, $placement, $style, $color_options | Filtre le bouton sur les pages de produits individuels. Si votre rappel renvoie une chaîne vide, aucun bouton ne s'affiche. |
stwlite_wishlist_cart_button_html | Filtre | $button_html | Filtre le bouton de la page panier qui enregistre tout le panier. |
stwlite_wishlist_button_cart_item_html | Filtre | $button_html, $product, $style, $color_options | Filtre le bouton par article dans le panier. |
stwlite_wishlist_button_show_button | Filtre | $show (défaut true), $product | Retourne false pour masquer le bouton pour un produit. |
stwlite_wishlist_button_allow_product_multiple_lists | Filtre | $allow (défaut true), $product | Retourne false pour supprimer le menu déroulant « Choisir la liste » du bouton. |
stwlite_before_wishlist_button_shop_page, stwlite_after_wishlist_button_shop_page | Action | Aucun | S'exécute avant et après l'affichage du bouton de la page boutique. |
stwlite_allowed_button_html | Filtre | $allowed_html | Filtre la liste autorisée de wp_kses() pour le balisage du bouton. |
Cet exemple ajoute une courte note après le bouton pour les produits en promotion :
add_filter( 'stwlite_wishlist_button_html', function ( $button_html, $product, $placement, $style, $button_label ) {
if ( '' === $button_html || ! $product instanceof WC_Product || ! $product->is_on_sale() ) {
return $button_html;
}
return $button_html . '<span class="my-sale-note">On sale</span>';
}, 10, 5 );
Emplacement, style et libellés du bouton
Ces filtres modifient l'endroit où le bouton apparaît et son apparence. Chacun reçoit le paramètre enregistré et retourne la valeur à utiliser.
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_wishlist_button_shop_placement | Filtre | $placement | Emplacement sur les pages boutique et d'archive. |
stwlite_wishlist_button_product_placement | Filtre | $placement | Emplacement sur les pages de produits individuels. |
stwlite_wishlist_button_shop_style, stwlite_wishlist_button_product_style, stwlite_wishlist_button_cart_style | Filtre | $style | Style du bouton pour chaque type de page. |
stwlite_wishlist_button_shop_label, stwlite_wishlist_button_selected_shop_label, stwlite_wishlist_button_cart_label | Filtre | $label | Texte du bouton pour l'état non enregistré, l'état enregistré et le bouton du panier. |
stwlite_wishlist_button_shop_color_options, stwlite_wishlist_button_product_color_options, stwlite_wishlist_button_cart_color_options | Filtre | $color_options | Le tableau des paramètres de couleur pour chaque type de page. |
Les emplacements de la boutique sont top_right, top_left, above_title, below_title, above_button, below_button et disable. Les emplacements des pages de produits sont top_image_right, top_image_left, top_cart, bottom_cart, inline_cart, top_title, bottom_title et disable. Le plugin lit l'emplacement une fois, lorsqu'il démarre sur le hook setup_theme à la priorité 100. Un filtre d'emplacement doit donc être ajouté avant ce point, alors enregistrez-le dans un fichier de plugin et non dans le fichier functions.php d'un thème. Les filtres de style, de libellé et de couleur s'exécutent chaque fois qu'un bouton est rendu, ils fonctionnent donc à partir de n'importe quel code.
add_filter( 'stwlite_wishlist_button_product_placement', function ( $placement ) {
return 'bottom_cart';
} );
Pour l’écran des paramètres correspondants, consultez Comment personnaliser le placement et les styles du bouton de liste de souhaits dans WooCommerce.
Données de la liste de souhaits
Ces filtres modifient les données de la liste de souhaits au fur et à mesure que le plugin les lit. Ils s’exécutent sur de nombreuses requêtes, y compris les vérifications de propriété et d’autorisation, alors gardez vos callbacks rapides. Ne modifiez pas les valeurs id, user_id, status ou is_public, car le plugin les lit pour décider qui peut voir une liste de souhaits.
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_collection_data | Filtre | $collection | Filtre la ligne brute de la base de données chaque fois qu’une liste de souhaits est chargée par ID, code d’URL ou nom. |
stwlite_collections_data | Filtre | $data | Filtre le tableau d’objets de liste de souhaits renvoyé pour une liste de listes de souhaits. |
stwlite_single_collection_data | Filtre | $data | Filtre un seul objet de liste de souhaits après une sauvegarde, et dans la route d’administration des listes de souhaits. |
stwlite_collection_items_data | Filtre | $data | Filtre le tableau d’objets d’articles pour une liste de souhaits. |
stwlite_all_wishlists | Filtre | $collections, $params | Filtre le résultat de la liste (data, total, currentPage) avant que le frontend ne le renvoie. |
stwlite_collection_data_to_update | Filtre | $data, $params | Filtre les valeurs des colonnes juste avant que le plugin n’écrive une liste de souhaits dans la base de données. |
stwlite_options | Filtre | $options | Filtre le tableau d’options que le plugin transmet au script frontend de la liste de souhaits. |
Cet exemple supprime la description des objets de liste de souhaits dans les réponses de liste :
add_filter( 'stwlite_collections_data', function ( $collections ) {
foreach ( $collections as $collection ) {
$collection->description = '';
}
return $collections;
} );
Accès à la liste de souhaits de l’utilisateur
Ces filtres décident qui peut lire ou posséder une liste de souhaits. Pour une requête de lecture, le plugin autorise d’abord les administrateurs ayant la capacité manage_options, puis le propriétaire de la liste de souhaits, puis les listes de souhaits publiques publiées, puis ses propres règles de partage. Ce n’est qu’après ces vérifications qu’il appelle stwlite_user_wishlist_access.
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_user_wishlist_access | Filtre | $granted (par défaut null), $data, $user_id, $request | Retournez true pour autoriser l’accès en lecture, false pour le refuser, ou null pour laisser le plugin décider. $data est l’objet de la liste de souhaits, $user_id est 0 pour un invité, et $request est la requête REST lorsqu’il y en a une. |
stwlite_user_owns_wishlist | Filtre | $owns, $collection_id, $user_id, $collection | Indique si l'utilisateur actuel possède la liste de souhaits. Ne s'exécute que pour une liste de souhaits existante. |
stwlite_show_all_wishlists_for_admin | Filtre | $show (par défaut false) | Retourne true pour permettre aux administrateurs de voir toutes les listes de souhaits des clients sur la route des listes de souhaits du frontend. |
Cet exemple permet aux responsables de boutique de lire n'importe quelle liste de souhaits :
add_filter( 'stwlite_user_wishlist_access', function ( $granted, $wishlist, $user_id, $request ) {
if ( $user_id && user_can( $user_id, 'manage_woocommerce' ) ) {
return true;
}
return $granted;
}, 10, 4 );
Actions de la liste de souhaits
Utilisez ces actions pour réagir lorsque quelque chose change, par exemple pour synchroniser des données avec un CRM ou écrire une entrée de journal.
| Hook | Type | Arguments | Quand cela se déclenche |
|---|---|---|---|
stwlite_before_product_added_to_wishlist | Action | $product_id, $quantity, $collection_id, $user_id | Avant qu'un produit ne soit ajouté à une liste de souhaits à partir du bouton ou des capacités d'IA du plugin. |
stwlite_after_product_added_to_wishlist | Action | $product_id, $quantity, $collection_id, $user_id, $added | Après cet ajout. $added est false lorsque rien n'a été écrit. $collection_id est la valeur brute de la requête et est souvent 0, ce qui signifie la liste de souhaits par défaut. |
stwlite_before_product_removed_from_wishlist | Action | $product_id, $collection_id, $variation_ids | Avant qu'un produit ne soit retiré d'une liste de souhaits à l'aide du bouton. |
stwlite_after_product_removed_from_wishlist | Action | $product_id, $collection_id, $variation_ids | Après qu'un produit a été retiré d'une liste de souhaits, à partir du bouton, de l'API REST ou des capacités d'IA. |
stwlite_before_product_added_to_cart, stwlite_after_product_added_to_cart | Action | $collection_id, $product_id, $quantity, $variation_id | Avant et après qu'un article de liste de souhaits soit déplacé vers le panier. |
stwlite_before_save_collection | Action | $data | Avant qu'une liste de souhaits ne soit écrite. $data est le tableau des valeurs des colonnes. |
stwlite_after_save_collection | Action | $data, $params | Après qu'une liste de souhaits a été écrite. $data est l'objet de la liste de souhaits sauvegardé. |
stwlite_after_insert_collection_item, stwlite_after_update_collection_item | Action | $data | Après qu'une ligne d'article a été insérée ou mise à jour. |
stwlite_before_delete_collections | Action | $ids | Avant la suppression des listes de souhaits. |
stwlite_after_delete_collections | Action | $ids, $deleted | Après la suppression des listes de souhaits. $deleted est le nombre de listes de souhaits supprimées. |
Cet exemple stocke le dernier produit qu'un client a enregistré dans ses métadonnées utilisateur :
add_action( 'stwlite_after_product_added_to_wishlist', function ( $product_id, $quantity, $collection_id, $user_id, $added ) {
if ( ! $added || ! $user_id ) {
return;
}
update_user_meta( $user_id, 'my_last_wishlisted_product', (int) $product_id );
}, 10, 5 );
Onglets et contrôles des paramètres d'administration
L'écran des paramètres construit ses onglets et champs à partir de tableaux. Utilisez ces filtres pour ajouter votre propre onglet, section ou champ, ou pour modifier un onglet, une section ou un champ existant.
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_admin_setting_tabs | Filtre | $tabs | Filtre final pour le tableau complet des onglets. |
stwlite_admin_setting_controls | Filtre | $controls | Filtre final pour le tableau complet des contrôles. |
stwlite_admin_data_tables | Filtre | $data_tables (tableau vide par défaut) | Enregistre les tables de données pour l'application des paramètres. |
stwlite_admin_setting_default_tabs, stwlite_admin_setting_default_parent_tabs, stwlite_admin_setting_default_child_tabs | Filtre | $tabs | Filtres précédents pour le tableau des onglets, l'onglet de niveau supérieur et les onglets enfants. |
stwlite_admin_setting_default_general_tab, stwlite_admin_setting_default_wishlist_page_tab, stwlite_admin_setting_default_wishlist_guest_tab, stwlite_admin_setting_default_wishlist_button_tab, stwlite_admin_setting_default_importer_tab | Filtre | $tab | Filtre un onglet enfant. Les variantes _sections de ces noms filtrent les sections de cet onglet. |
stwlite_admin_setting_default_controls | Filtre | $controls | Filtre précédent pour le tableau des contrôles. |
stwlite_admin_setting_default_general_tab_controls, stwlite_admin_setting_default_wishlist_page_tab_controls, stwlite_admin_setting_default_wishlist_guest_tab_controls, stwlite_admin_setting_default_wishlist_button_tab_controls | Filtre | $controls | Filtre les contrôles d'un onglet. |
Les onglets se trouvent sous la clé parente saveto_wishlist. Les clés des onglets enfants sont general, wishlist_page, wishlist_guest, wishlist_button et importer. Chaque onglet enfant contient sort, key, label, icon et un tableau sections. Le tableau des contrôles est indexé comme $controls[ 'saveto_wishlist' ][ $tab_key ][ $section_key ], et chaque section contient une liste de tableaux de contrôles. Un contrôle a un type (par exemple switch ou select), un label, un id qui est le nom de l'option, une description et une valeur default. Les contrôles de type switch utilisent les valeurs yes et no.
Cet exemple ajoute un interrupteur à l'onglet Général. Il suppose que la clé de section est save_to_wishlist_settings, qui est la première section de cet onglet.
add_filter( 'stwlite_admin_setting_default_general_tab_controls', function ( $controls ) {
$controls['save_to_wishlist_settings'][] = array(
'type' => 'switch',
'label' => __( 'Log wishlist adds', 'my-plugin' ),
'id' => 'my_plugin_log_wishlist_adds',
'description' => __( 'If Yes, write an entry to the debug log when a customer saves a product.', 'my-plugin' ),
'options' => array(
'yes' => __( 'Yes', 'my-plugin' ),
'no' => __( 'No', 'my-plugin' ),
),
'default' => get_option( 'my_plugin_log_wishlist_adds', 'no' ),
);
return $controls;
} );
L'écran des paramètres enregistre chaque valeur de contrôle via la route des paramètres d'administration décrite plus loin dans cet article. Deux filtres dynamiques vous permettent de gérer vous-même une sauvegarde ou un bouton :
stwlite_group_settings_{action}est un filtre qui reçoit les valeurs enregistrées sous$optionslorsque la charge utile des paramètres contient une clé nomméeaction. Il renvoie le tableau de réponse avecstatusetmessage.stwlite_trigger_{action}est un filtre qui reçoit les paramètres de la requête sous$paramslorsque la route d'action est appelée. Il renvoie un tableau avecstatusetmessage, et une URL deredirectoptionnelle.
Traductions frontend
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_frontend_translations | Filtre | $i18n | Filtre la table des clés de traduction vers les chaînes traduites que le plugin transmet à l'application de liste de souhaits. Retourne le tableau. Une valeur de retour non-tableau est ignorée. |
La page de liste de souhaits charge ces chaînes deux fois par requête, donc votre callback doit fusionner dans une table et éviter les travaux lourds. Cet exemple change une chaîne. Utilisez une clé qui existe déjà dans le tableau.
add_filter( 'stwlite_frontend_translations', function ( $i18n ) {
$i18n['just_now'] = __( 'a moment ago', 'my-plugin' );
return $i18n;
} );
Données de suivi d'utilisation
Lorsqu'un magasin a autorisé le suivi d'utilisation, le plugin envoie une vérification périodique. Ces filtres permettent à un plugin compagnon d'ajouter à ces données. Les valeurs doivent être scalaires, et elles ne doivent pas contenir d'informations d'identification ou de données personnelles.
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_usage_checkin_data | Filtre | $data | Filtre la charge utile complète de la vérification. |
stwlite_usage_settings | Filtre | $settings | Filtre les paires nom et valeur des paramètres dans la charge utile. |
stwlite_usage_effectiveness | Filtre | $data, $start, $end | Filtre les métriques d'efficacité hebdomadaires. $start et $end sont des dates UTC au format Y-m-d H:i:s. |
Le paramètre « Suivi d'utilisation » dans l'onglet Général contrôle le consentement. Si un magasin le définit sur Non, le plugin ne rapporte rien, quelles que soient les valeurs retournées par vos filtres.
API REST
Toutes les routes utilisent l'espace de noms saveto-wishlist/v1, donc le chemin complet est https://your-site.com/wp-json/saveto-wishlist/v1/ suivi du chemin dans les tableaux. Elles suivent l'authentification normale de l'API REST de WordPress. Le code du navigateur envoie l'en-tête X-WP-Nonce pour un utilisateur connecté, et d'autres clients peuvent utiliser un mot de passe d'application avec l'authentification HTTP Basic. Une requête refusée renvoie l'erreur rest_forbidden_context avec le statut 401 pour un appelant non connecté ou 403 pour un appelant connecté.
Routes client
Ces routes alimentent le bouton de liste de souhaits et la page de liste de souhaits.
| Méthode et chemin | Qui peut l'appeler | Ce qu'il fait |
|---|---|---|
POST /frontend/endpoints | Utilisateurs connectés. Les invités sont refusés à moins qu'un filtre de permission ne les autorise. | Exécute une action de liste de souhaits choisie par le paramètre action. Voir le tableau des actions ci-dessous. |
GET /frontend/endpoints/wishlists | Identique à ci-dessus. | Retourne data, total et currentPage pour les listes de souhaits. Les clients voient leurs propres listes de souhaits. Passer is_public=true liste les listes de souhaits publiques d'autres clients. |
GET /frontend/endpoints/wishlist-items | Utilisateurs connectés. Un visiteur ne peut lire qu'une liste de souhaits publique nommée par collection_id. | Retourne les articles de la liste de souhaits dans le paramètre collection_id requis. L'appelant doit également être autorisé à afficher cette liste de souhaits, sinon la route renvoie une erreur 401 ou 403. |
POST /frontend/endpoints/guest-wishlist-products | Invités uniquement. Un utilisateur connecté reçoit une erreur. | Prend un tableau products d'objets avec productId, quantity, priority et addedAt. Retourne les données du produit correspondant pour une liste de souhaits stockée dans le navigateur. |
La route POST /frontend/endpoints répond toujours avec HTTP 200 et un champ status, donc vérifiez status dans le corps. Un appelant qui ne possède pas la liste de souhaits obtient status défini sur error. Seuls les utilisateurs ayant la capacité manage_options peuvent écrire dans la liste de souhaits d'un autre utilisateur.
Valeur action | Paramètres lus | Accroche déclenchée en premier |
|---|---|---|
add_wishlist | name, description, status, is_default, is_public, url_code, emails, user_ids, allowed_roles, allowed_edit_emails | stwlite_before_api_save_collection_add_wishlist avec $data |
update_wishlist | id plus tout champ de add_wishlist. Seuls les champs que vous envoyez sont mis à jour. | stwlite_before_api_save_collection_update_wishlist avec $data |
remove_wishlist | ids | Aucun |
add_wishlist_item | collection_id, product_id, variation_id, quantity, priority, notes | stwlite_before_api_save_collection_item_add_wishlist_item avec $data |
update_wishlist_item | id plus les champs de add_wishlist_item | stwlite_before_api_save_collection_item_update_wishlist_item avec $data |
move_wishlist_item | id, collection_id | stwlite_before_api_save_collection_item_move_wishlist_item avec $data |
remove_wishlist_item | collection_id, product_id, variation_id | stwlite_after_product_removed_from_wishlist se déclenche après la suppression avec $product_id, $collection_id, $variation_ids |
update_wishlist_item_position | listes | Aucun |
Cette requête liste les listes de souhaits du compte qui possède le mot de passe de l'application :
curl -u "username:application-password" \
"https://your-site.com/wp-json/saveto-wishlist/v1/frontend/endpoints/wishlists"
Ces filtres modifient qui passe les vérifications de la route client et ce que la route invité renvoie :
| Hook | Type | Arguments | Ce qu'il fait |
|---|---|---|---|
stwlite_api_user_permissions_check | Filtre | $response, $request | Résultat final pour POST /frontend/endpoints et GET /frontend/endpoints/wishlists. Renvoie true ou une WP_Error. |
stwlite_api_user_force_access | Filtre | $force (par défaut false), $request | Renvoie true pour laisser passer un appelant non connecté via ces deux routes. |
stwlite_check_any_user_has_permission | Filtre | $response, $request | Résultat final pour la route wishlist-items. |
stwlite_check_any_user_has_permission_validation | Filtre | $valid (par défaut false), $data, $request | Renvoie true pour laisser un appelant non connecté lire une liste de souhaits qui n'est pas publique. |
stwlite_check_guest_permission | Filtre | $response, $request | Résultat final pour la route guest-wishlist-products. |
stwlite_guest_wishlist_products_data | Filtre | $products, $product_data | Filtre la liste de produits que la route invité renvoie. |
Routes d'administration
Les routes ci-dessous servent les écrans d'administration du plugin et peuvent changer entre les versions. Préférez les hooks ci-dessus pour les intégrations. Chaque route d'administration nécessite la capacité manage_options. Utilisez le filtre stwlite_api_admin_permissions_check ($response, $request) pour modifier cela, et faites attention lorsque vous élargissez l'accès, car ces routes peuvent écrire des options de site et supprimer des listes de souhaits.
| Méthode et chemin | Ce qu'il fait |
|---|---|
POST /admin/wishlists | Crée ou met à jour une liste de souhaits à partir du corps de la requête. Elle renvoie une erreur 422 si vous ajoutez des articles non encore enregistrés à une liste de souhaits dont le statut est draft. |
DELETE /admin/wishlists | Supprime les listes de souhaits du paramètre ids. La réponse liste count et skipped. Une liste de souhaits est ignorée lorsqu'elle est la dernière liste de souhaits de son propriétaire. |
GET /admin/wishlists/collections | Renvoie une page de listes de souhaits avec data, total et currentPage. |
GET /admin/wishlists/collection/{id} | Renvoie une liste de souhaits par ID numérique. |
GET /admin/wishlists/items | Route de substitution qui renvoie une liste data vide. |
POST /admin/settings/save | Enregistre les paramètres. Le corps est une liste d'objets avec key et value. Une valeur de true ou false est stockée sous forme de yes ou no. |
POST /admin/settings/action | Exécute le filtre stwlite_trigger_{action} pour le paramètre action. |
GET /admin/importer/sources | Liste les plugins de liste de souhaits que l'importateur a détectés sur le site. |
GET /admin/importer/preview/{source} | Renvoie le nombre d'éléments et un aperçu pour une source. |
POST /admin/importer/import | Démarre une importation. Elle prend source et un objet options facultatif (merge_existing, preserve_default, preserve_privacy, batch_number, job_id). Un utilisateur peut démarrer une importation toutes les 300 secondes. |
GET /admin/importer/import/{job_id} | Renvoie la progression d'un travail d'importation. |
DELETE /admin/importer/import/{job_id} | Annule un travail d'importation. |
Les sources d'importation intégrées sont yith, ti, moreconvert et wpc. Utilisez le filtre stwlite_available_importers, qui reçoit et renvoie un tableau associant un slug de source à un nom de classe d'importateur, pour en enregistrer une autre.
Questions fréquemment posées
Pourquoi mon filtre de placement ne fait-il rien ?
Le plugin lit le placement lors de son démarrage sur le hook setup_theme à la priorité 100. Ajoutez le filtre depuis un fichier de plugin. Le fichier functions.php d'un thème se charge après ce point.
Pourquoi mon balisage de bouton perd-il une balise ou un attribut ?
Le plugin traite le balisage du bouton via wp_kses(). Ajoutez la balise ou l'attribut à la liste d'autorisation avec le filtre stwlite_allowed_button_html.
Pourquoi la route d'enregistrement renvoie-t-elle HTTP 200 pour une requête refusée ?
POST /frontend/endpoints répond toujours avec HTTP 200 et place le résultat dans le champ status du corps. Lisez status et message au lieu du code HTTP.
Et ensuite
- Comment étendre SaveTo Wishlist Pro avec des hooks et l'API REST
- Comment étendre SaveTo Wishlist Registry avec des hooks et l'API REST
- Comment utiliser les capacités de l'IA dans SaveTo Wishlist
Besoin d'aide ?
Si vous avez une question ou rencontrez un problème, nous sommes là pour vous aider.
- Utilisateurs premium : Ouvrir un ticket de support
- Utilisateurs gratuits : Visitez notre forum communautaire
