Zum Hauptinhalt springen
Support Center wird geladen Wir bereiten die neuesten Anleitungen, Releases und Feature-Updates vor.
Anleitungen werden geladen Wir bereiten die passenden Inhalte der Wissensdatenbank für diese Plattform vor.
WordPress-Hooks und Filter Referenz | Chamevo Support Center
Support / Wissensdatenbank / WordPress / Entwicklerreferenz / WordPress-Hooks und Filter Referenz Chamevo stellt WordPress-Action-Hooks und Filter zur Verfügung, mit denen Entwickler das Verhalten des Plugins anpassen können — die Customizer-Konfiguration ändern, Bestelldaten abfangen, steuern, welche Produkte den Customizer anzeigen, und E-Mail-Benachrichtigungen anpassen.
Typ: Filter
Datei: src/functions.php
Steuert, ob der Produkt-Customizer für einen bestimmten Beitrag/ein bestimmtes Produkt aktiviert ist.
apply_filters('chamevo_designer_enabled', bool $enabled, int $post_id): bool
Parameter Typ Beschreibung $enabledboolOb der Customizer für diesen Beitrag aktuell aktiviert ist $post_idintDie WordPress-Beitrags-/Produkt-ID
Beispiel: Customizer für ein bestimmtes Produkt deaktivieren:
add_filter('chamevo_designer_enabled', function($enabled, $post_id) {
if ($post_id === 123) {
return false;
}
return $enabled;
}, 10, 2);
Ähnliche Artikel Einen eigenen Cloud-Storage-Handler implementieren Verwenden Sie den Filter chamevo_storage_handler, um Kunden-Uploads und druckfertige Dateien über die Implementierung von StorageHandlerInterface an einen beliebigen Cloud-Storage-Anbieter weiterzuleiten. Auf Customizer-Events per JavaScript reagieren Lesen Sie den Live-Preis des Customizers aus und reagieren Sie mit der clientseitigen ChamevoJS-API per eigenem JavaScript auf Produkt-, Ansichts- und Elementänderungen. Den Chamevo MCP-Server einrichten Verbinden Sie Claude und andere KI-Assistenten über den @chamevo/mcp-Server mit Ihrem Chamevo-Shop — ohne Installation, mit einem einzigen JSON-Block — und verwalten Sie Produkte, Bestellungen und druckfertige Dateien per Chat. Einen eigenen AI-Provider verwenden Leiten Sie Chamevos AI Tools mit toolspezifischen wp-config-Konstanten oder Filtern an Ihren eigenen Provider-Endpoint und API-Schlüssel weiter und umgehen Sie so den gehosteten Chamevo-Dienst und den Credit-Verbrauch.
Standardmäßig laufen Chamevos AI Tools über den gehosteten Chamevo-Dienst und verbrauchen KI-Credits. Sie können stattdessen jedes Tool auf Ihren eigenen AI-Provider verweisen. Wenn Sie das tun, ruft Chamevo Ihren Endpoint direkt auf — es überspringt den gehosteten Dienst, sendet keinen Chamevo-Lizenz-Header und verbraucht für dieses Tool keine Chamevo-Credits.
Sie können jedes Tool unabhängig weiterleiten. Senden Sie zum Beispiel Text-zu-Bild an Ihren eigenen Provider, während Upscaling und Hintergrundentfernung weiterhin über den gehosteten Dienst laufen.
AI Photo Styles können ebenfalls Ihren eigenen Provider nutzen, allerdings nur über Filter — dafür gibt es keine wp-config-Konstanten. Siehe [AI Photo Styles weiterleiten](#ai-photo-styles-weiterleiten).
## Bevor Sie beginnen
- Sie können `wp-config.php` auf Ihrem Server bearbeiten oder PHP-Filter in einem Plugin oder Theme hinzufügen.
- Sie haben eine Endpoint-URL und einen API-Schlüssel für jedes AI-Tool, das Sie weiterleiten möchten.
- Sie kennen das Request- und Response-Format Ihres Providers. Wenn es von Chamevos Standard abweicht, bilden Sie es mit den unten stehenden Request- und Response-Filtern ab.
Die AI Tools werden diesen kanonischen Schlüsseln zugeordnet:
| AI-Tool | Tool-Schlüssel | Konstanten-Infix |
|---------|----------|----------------|
| Bilder aus Text generieren | `text2image` | `TEXT2IMAGE` |
| Bilder hochskalieren | `upscale` | `UPSCALE` |
| Hintergründe entfernen | `remove_background` | `REMOVE_BACKGROUND` |
| AI Photo Styles | `image_filter` | — (nur Filter) |
## Ein Tool mit wp-config-Konstanten weiterleiten
Die einfachste Einrichtung verwendet Konstanten in `wp-config.php`.
1. Öffnen Sie `wp-config.php` im Stammverzeichnis Ihrer WordPress-Installation.
2. Definieren Sie über der Zeile `/* That's all, stop editing! */` den Endpoint und den Schlüssel für das Tool, das Sie weiterleiten möchten.
3. Speichern Sie die Datei.
```php
// Route text-to-image to your own provider.
define('CHAMEVO_AI_TEXT2IMAGE_ENDPOINT', 'https://api.example.com/v1/images');
define('CHAMEVO_AI_TEXT2IMAGE_KEY', 'sk-your-provider-key');
define('CHAMEVO_AI_TEXT2IMAGE_MODEL', 'my-image-model'); // optional
```
Sobald die Endpoint-Konstante einen Wert hat, befindet sich dieses Tool im **Custom-Modus**. Wenn ein Kunde es das nächste Mal verwendet, sendet Chamevo den Request direkt an Ihren Endpoint.
### Konstanten-Referenz
Ersetzen Sie `{TOOL}` durch `TEXT2IMAGE`, `UPSCALE` oder `REMOVE_BACKGROUND`.
| Konstante | Erforderlich | Zweck |
|----------|----------|---------|
| `CHAMEVO_AI_{TOOL}_ENDPOINT` | Ja | Vollständige Provider-URL. Ein nicht-leerer Wert aktiviert den Custom-Modus. |
| `CHAMEVO_AI_{TOOL}_KEY` | Empfohlen | API-Schlüssel. Wird als `Authorization: Bearer …` gesendet. |
| `CHAMEVO_AI_{TOOL}_MODEL` | Nein | Modell-Identifier, dem Request-Body als `model` hinzugefügt. |
## Was der Custom-Modus ändert
Im Custom-Modus geht Chamevo wie folgt vor:
- Sendet den Request direkt an Ihren Endpoint, nicht an den gehosteten Chamevo-Dienst.
- Verwendet `POST` mit `Authorization: Bearer {Ihr Schlüssel}`.
- Sendet **nicht** den Chamevo-Lizenz-Header (`X_API_TOKEN`).
- Verbraucht für dieses Tool **keine** Chamevo-KI-Credits.
Standardmäßig sendet Chamevo seinen eigenen Request-Body und erwartet seine eigene Response-Form.
**Standard-Request-Body pro Tool** (plus `model`, wenn die `_MODEL`-Konstante gesetzt ist):
| Tool | Standard-Body |
|------|--------------|
| `text2image` | `{ "prompt": "..." }` |
| `upscale` | `{ "image_url": "...", "scale": 2 }` |
| `remove_background` | `{ "image_url": "..." }` |
**Erwartete Response-Form:**
```json
{ "status": "success", "data": { "output": "https://your-cdn.com/result.png" } }
```
`output` kann eine einzelne URL, ein Array von URLs oder eine `data:image/…;base64,…`-URI sein.
Wenn Ihr Provider diesen Body bereits akzeptiert und diese Form zurückgibt, genügen die Konstanten allein. Andernfalls bilden Sie die Formen mit den unten stehenden Filtern ab.
### Einstellungen, die der Custom-Modus ignoriert
Die Text-zu-Bild-Einstellungen unter **Chamevo → Settings → General → AI Services** gelten nur für den gehosteten Dienst. Im Custom-Modus sendet Chamevo nicht:
- das Modell und die Auflösung aus **Image Generation Model & Resolution**
- die Bildanzahl aus **Images per Generation**
Das entscheidet stattdessen Ihr Provider. Legen Sie das Modell mit `CHAMEVO_AI_TEXT2IMAGE_MODEL` fest und Größe sowie Bildanzahl in `chamevo_ai_text2image_request_body` (zum Beispiel `n` und `size`). Geben Sie in `output` ein Array von URLs zurück, damit Kunden mehrere Bilder erhalten.
Dasselbe gilt für AI Photo Styles: Das pro Style gewählte **Image model** wird nicht an einen eigenen Provider gesendet. In diesen Einstellungen angezeigte Credits werden im Custom-Modus nicht berechnet.
## Einen Provider mit abweichendem Schema abbilden
Die meisten Provider verwenden ihre eigenen Request- und Response-Formate. Verwenden Sie die Request- und Response-Filter zur Übersetzung. `{tool}` ist `text2image`, `upscale` oder `remove_background`.
Dieses Beispiel passt Text-zu-Bild an einen Image-Endpoint im OpenAI-Stil an:
```php
// Reshape the request body to the provider's schema.
add_filter('chamevo_ai_text2image_request_body', function($body, $context) {
return [
'model' => $context['config']['model'] ?: 'gpt-image-1',
'prompt' => $context['prompt'],
'n' => 1,
'size' => '1024x1024',
];
}, 10, 2);
// Normalize the provider response back into Chamevo's shape.
add_filter('chamevo_ai_text2image_response', function($normalized, $raw, $config) {
return [
'status' => 'success',
'data' => ['output' => $raw['data'][0]['url']],
];
}, 10, 3);
```
`$context` enthält die Tool-Eingaben — `prompt` für `text2image` und `image_url` (plus `scale` für `upscale`) für die Bild-Tools — sowie die aufgelöste `config`.
### Konfiguration zur Laufzeit statt in wp-config festlegen
Wenn Sie `wp-config.php` nicht bearbeiten können oder den Provider dynamisch wählen möchten, verwenden Sie den Config-Filter anstelle von Konstanten:
```php
add_filter('chamevo_ai_upscale_config', function($config, $tool) {
$config['endpoint'] = 'https://api.example.com/v1/upscale';
$config['api_key'] = get_option('my_upscale_key');
return $config;
}, 10, 2);
```
### Asynchrone Provider aufrufen
Für Provider, die einen Job erstellen und Polling erfordern (oder die ein SDK benötigen), schließen Sie den integrierten HTTP-Aufruf mit dem `pre`-Filter kurz. Geben Sie Chamevos Response-Form zurück, und der integrierte Request wird vollständig übersprungen:
```php
add_filter('chamevo_ai_text2image_pre', function($result, $context) {
$url = my_provider_create_and_poll($context['prompt']);
return ['status' => 'success', 'data' => ['output' => $url]];
}, 10, 2);
```
Die vollständige Filter-Familie ist in der [WordPress-Hooks und Filter Referenz](/kb/wordpress/developers/wordpress-hooks) dokumentiert.
## AI Photo Styles weiterleiten
[AI Photo Styles](/kb/wordpress/ai-tools/photo-styles) verwenden den Tool-Schlüssel `image_filter`. Es gibt keine `CHAMEVO_AI_IMAGE_FILTER_*`-Konstanten, legen Sie den Endpoint daher mit dem Config-Filter fest:
```php
add_filter('chamevo_ai_image_filter_config', function($config, $tool) {
$config['endpoint'] = 'https://api.example.com/v1/images/edits';
$config['api_key'] = MY_IMAGE_EDIT_KEY; // sent as Authorization: Bearer …
return $config;
}, 10, 2);
```
Es gelten dieselben Filter `pre`, `request_body`, `request_headers` und `response`, mit `image_filter` als `{tool}`.
**Standard-Request-Body:**
```json
{ "image": "https://… or data:image/jpeg;base64,…", "prompt": "<the style's prompt>" }
```
`$context` enthält `image`, `prompt` und die aufgelöste `config`. Das Bild ist eine öffentliche URL oder eine Inline-JPEG-Data-URI (längste Kante 2048 px), wenn Ihre Website nicht aus dem Internet erreichbar ist. Der Prompt stammt aus dem Style auf Ihrem Server — der Browser des Kunden sieht ihn nie.
Geben Sie Chamevos Response-Form mit einem Ergebnisbild in `output` zurück (eine URL oder eine `data:image/…;base64,…`-URI). Chamevo speichert das Ergebnis auf Ihrem Server und platziert es auf dem Canvas.
Styles benötigen weiterhin aktivierte **AI Photo Styles** unter **Settings → General → AI Services** sowie einen Prompt. Die Schaltfläche **Try** auf dem Bildschirm der AI Photo Styles nutzt dieselbe Route.
## Überprüfen Sie Ihr Setup
- Öffnen Sie ein Produkt im Customizer und führen Sie das AI-Tool aus, das Sie weitergeleitet haben.
- Vergewissern Sie sich, dass das Ergebnisbild zurückkommt und dem Canvas hinzugefügt wird.
- Überprüfen Sie, dass sich Ihr Chamevo-KI-Credit-Guthaben für dieses Tool nicht ändert — Credits werden nur im gehosteten Modus verbraucht.
- Wenn ein Request fehlschlägt, aktivieren Sie das Debug-Logging und suchen Sie nach einem Eintrag `Custom AI provider request failed` mit dem Tool und dem Endpoint.
## Fehlerbehebung
- **Das Tool verwendet weiterhin das gehostete Chamevo und verbraucht Credits** — Die Endpoint-Konstante ist leer oder falsch benannt. Der Name muss genau `CHAMEVO_AI_{TOOL}_ENDPOINT` lauten, mit dem Tool in Großbuchstaben (`TEXT2IMAGE`, `UPSCALE`, `REMOVE_BACKGROUND`), und er muss definiert sein, bevor WordPress das Plugin lädt.
- **Der Provider gibt 401 oder 403 zurück** — Der Schlüssel fehlt oder ist falsch. Überprüfen Sie die `_KEY`-Konstante oder setzen Sie einen benutzerdefinierten Auth-Header mit `chamevo_ai_{tool}_request_headers`.
- **Der Provider lehnt den Request-Body ab** — Sein Schema weicht von Chamevos Standard ab. Bilden Sie den Body mit `chamevo_ai_{tool}_request_body` ab.
- **Das Bild erscheint nie, obwohl der Provider antwortet** — Die Response-Form stimmt nicht überein. Bilden Sie sie mit `chamevo_ai_{tool}_response` auf `{ "status": "success", "data": { "output": "<url>" } }` ab.
- **Nur ein Tool wird korrekt weitergeleitet** — Jedes Tool wird separat konfiguriert. Definieren Sie Konstanten (oder Filter) für jedes Tool, das Sie weiterleiten möchten.
- **Meine Einstellungen für Modell oder Bildanzahl haben keine Wirkung** — Im Custom-Modus werden die Einstellungen **Image Generation Model & Resolution** und **Images per Generation** nicht gesendet. Legen Sie sie stattdessen in `chamevo_ai_text2image_request_body` fest.
- **AI Photo Styles verbrauchen weiterhin Chamevo-Credits** — `CHAMEVO_AI_IMAGE_FILTER_*`-Konstanten existieren nicht. Verwenden Sie den Filter `chamevo_ai_image_filter_config`.
## Nächste Schritte
- [WordPress-Hooks und Filter Referenz](/kb/wordpress/developers/wordpress-hooks) für die vollständigen AI-Filter-Signaturen.
- [AI Tools – Überblick und Credit-Verbrauch](/kb/wordpress/ai-tools/overview), um zu sehen, welche Tools und Credits im gehosteten Modus gelten.
---
## FAQ
**F: Verhindert die Verwendung eines eigenen AI-Providers, dass Chamevo Credits berechnet?**
A: Ja. Wenn sich ein Tool im Custom-Modus befindet, ruft Chamevo Ihren Endpoint direkt auf und verbraucht für dieses Tool keine Chamevo-KI-Credits.
**F: Kann ich nur ein AI-Tool weiterleiten und die anderen gehostet lassen?**
A: Ja. Jedes Tool wird unabhängig konfiguriert. Definieren Sie Konstanten oder Filter nur für die Tools, die Sie umleiten möchten; der Rest verwendet weiterhin den gehosteten Chamevo-Dienst.
**F: Mein Provider verwendet ein anderes Request-Format. Funktioniert es trotzdem?**
A: Ja, mit einer kleinen Abbildung. Verwenden Sie die Filter `chamevo_ai_{tool}_request_body` und `chamevo_ai_{tool}_response`, um zwischen dem Format Ihres Providers und Chamevos erwarteter Form zu übersetzen.
**F: Können AI Photo Styles meinen eigenen Provider nutzen?**
A: Ja, aber nur über Filter. Geben Sie einen Endpoint aus `chamevo_ai_image_filter_config` zurück und bilden Sie bei Bedarf den Body `{ image, prompt }` mit `chamevo_ai_image_filter_request_body` ab.
**F: Gilt meine Einstellung Images per Generation auch für meinen eigenen Provider?**
A: Nein. Modell, Auflösung und Bildanzahl aus den AI-Services-Einstellungen gelten nur für den gehosteten Dienst. Ihr Provider legt sie fest, zum Beispiel über den Request-Body-Filter. chamevo_app_options
Typ: Filter
Datei: src/Frontend/ProductDesignerConfigBuilder.php
Produkt-Customizer-Optionen ändern, bevor sie an das Frontend gesendet werden.
apply_filters('chamevo_app_options', array $options, int $product_id): array
Parameter Typ Beschreibung $optionsarrayDie Customizer-Konfigurationsoptionen $product_idintDie Chamevo-Produkt-ID
Beispiel: Eine bestimmte Modulreihenfolge erzwingen:
add_filter('chamevo_app_options', function($options, $product_id) {
$options['mainBarModules'] = ['images', 'text', 'graphics'];
return $options;
}, 10, 2);
Typ: Filter
Datei: src/Frontend/ProductDesigner.php
Das vollständige Frontend-Konfigurationsobjekt ändern (enthält Produktdaten, Optionen und UI-Einstellungen).
apply_filters('chamevo_frontend_setup_configs', array $configs): array
chamevo_post_enabledTyp: Action
Datei: src/Frontend/ProductDesigner.php
Wird ausgelöst, wenn eine Chamevo-aktivierte Beitrags-/Produktseite geladen wird.
do_action('chamevo_post_enabled', WP_Post $post, PostSettings $product_settings)
Typ: Action
Datei: src/Frontend/ProductDesigner.php
Wird unmittelbar vor dem Rendern des Produkt-Customizer-HTML ausgelöst.
do_action('chamevo_before_product_designer')
Typ: Action
Datei: src/Frontend/ProductDesigner.php
Wird unmittelbar nach dem Rendern des Produkt-Customizer-HTML ausgelöst.
do_action('chamevo_after_product_designer', WP_Post $post)
Typ: Action
Datei: src/Frontend/Woo/Product.php
Wird am Ende der WooCommerce-Warenkorb-Formularausgabe für Chamevo-Produkte ausgelöst.
do_action('chamevo_product_designer_form_end', PostSettings $product_settings)
Typ: Filter
Datei: src/Frontend/FileUpload/RemoteImageHandler.php
Domains zur Whitelist vertrauenswürdiger Bild-Hosts für Remote-Bild-Uploads hinzufügen.
apply_filters('chamevo_trusted_image_hosts', array $hosts): array
Typ: Filter
Datei: src/Frontend/Woo/Order.php, src/Services/WooCommerceOrderService.php
Personalisierungsdaten ändern oder abfangen, wenn eine neue Bestellung aufgegeben wird. Dies ist der zentrale Hook für alle Bestellungstypen (WooCommerce, Shortcode, Gravity Forms).
apply_filters('chamevo_new_order_item_data', array $chamevo_data, string $order_type, array $additional_data): array
Parameter Typ Beschreibung $chamevo_dataarrayDie Personalisierungsdaten (Produkt-JSON, Thumbnail, Printful-Optionen) $order_typestringBestellungsquelle: 'wc', 'shortcode' oder 'gf' $additional_dataarrayEnthält order_id, item_id, item, customer_mail
Typ: Action
Datei: src/Frontend/Woo/Cart.php
Wird ausgelöst, nachdem ein personalisiertes Produkt dem WooCommerce-Warenkorb hinzugefügt wurde.
do_action('chamevo_wc_add_to_cart', string $cart_item_key, int $product_id, int $quantity, int $variation_id, array $variation, array $cart_item_data)
Typ: Action
Datei: src/Services/WooCommerceOrderService.php
Wird ausgelöst, nachdem eine neue WooCommerce-Bestellung mit Chamevo-Daten verarbeitet wurde.
do_action('chamevo_wc_new_order_processed', int $order_id, int $item_id, array $chamevo_data, array $additional_data)
Typ: Filter
Datei: src/Frontend/Woo/Cart.php
Den Preis eines personalisierten Warenkorb-Artikels ändern.
apply_filters('chamevo_wc_cart_item_price', float $price, array $cart_item, array $chamevo_data): float
Typ: Action
Datei: src/Services/WooCommerceOrderService.php
Wird ausgelöst, bevor die WooCommerce-Bestellungsbenachrichtigungs-E-Mail gesendet wird.
do_action('chamevo_wc_order_mail', int $order_id, int $item_id, string $customer_name, string $customer_email, string $message, array $chamevo_data)
Diese Filter ermöglichen es Ihnen, jeden Teil der Bestellungsbenachrichtigungs-E-Mail zu ändern:
Filter Parameter Rückgabe chamevo_wc_order_mail_to$to, $order_id, $item_id, $datastringchamevo_wc_order_mail_subject$subject, $order_id, $item_id, $datastringchamevo_wc_order_mail_message$message, $order_id, $item_id, $datastringchamevo_wc_order_mail_headers$headers, $order_id, $item_id, $datastringchamevo_wc_order_mail_attachments$attachments, $order_id, $item_id, $dataarray
Chamevo-Daten ändern, bevor sie in einem WooCommerce-Bestellungselement gespeichert werden.
apply_filters('chamevo_wc_update_order_item_data', array $data, int $order_id, int $item_id): array
Chamevo-Daten ändern, wenn sie aus einem WooCommerce-Bestellungselement abgerufen werden.
apply_filters('chamevo_wc_get_order_item_data', array $data, int $order_id, int $item_id): array
Wird ausgelöst, nachdem Chamevo-Daten in einem WooCommerce-Bestellungselement aktualisiert wurden.
do_action('chamevo_wc_order_item_data_updated', int $order_id, int $item_id, array $data)
Wird ausgelöst, nachdem Chamevo-Daten aus einem WooCommerce-Bestellungselement gelöscht wurden.
do_action('chamevo_wc_order_item_data_deleted', int $order_id, int $item_id)
Typ: Filter
Datei: src/Services/ServiceRouter/ExportService.php
Die Webhook-URL ändern, bevor die Benachrichtigung über die druckfertige Datei gesendet wird.
apply_filters('chamevo_export_file_ready_webhook', string $webhook_url, array $print_data): string
Typ: Filter
Datei: src/functions.php
Überschreibt die OAuth-Redirect-URI, die der Cloud-Storage-Verbindungsvorgang von Dropbox verwendet. Standard ist untrailingslashit( home_url() ).
apply_filters('chamevo_dropbox_redirect_uri', string $redirect_uri): string
Die Redirect URI ist keine gespeicherte Benutzereingabe mehr. Sie wird bei jedem Lesevorgang berechnet und der Option chamevo_ae_dropbox_redirect_uri aufgezwungen, sodass Einstellungsseite, Verbindungsfenster und Cloud-Export-Handler stets übereinstimmen — auch bei Installationen, die einen veralteten Wert aus Fancy Product Designer oder von einer früheren Domain mitbringen. Das Feld wird unter Settings → Export → Cloud Storage schreibgeschützt dargestellt.
Verwenden Sie diesen Filter nur, wenn sich Ihr Admin-Origin von home_url() unterscheidet — etwa bei einem Headless-Setup oder wenn wp-admin über einen anderen Host ausgeliefert wird.
add_filter('chamevo_dropbox_redirect_uri', function ($uri) {
return 'https://admin.example.com';
});
Der Wert muss im selben Origin wie wp-admin liegen. Der Verbindungsvorgang liest den Parameter ?code= aus location.href des Popups, was der Browser nur im selben Origin erlaubt. Bei einem fremden Host bleibt das Popup hängen, ohne je einen Autorisierungscode zu liefern. Was Sie hier zurückgeben, muss außerdem in der Dropbox App Console als Redirect URI hinterlegt sein.
Diese dynamischen Filter leiten Chamevos AI Tools — Text-zu-Bild-Generierung, Upscaling und Hintergrundentfernung — an Ihren eigenen AI-Provider anstelle des gehosteten Chamevo-Dienstes weiter. {tool} ist einer der kanonischen Tool-Schlüssel: text2image, upscale oder remove_background.
Typ: Filter
Datei: src/Services/ServiceRouter/AIProviderConfig.php
Löst die Provider-Konfiguration für ein Tool auf. Geben Sie eine Konfiguration zurück, deren endpoint nicht leer ist, um das Tool in den Custom-Modus zu versetzen — Chamevo ruft dann Ihren Endpoint direkt auf und umgeht den gehosteten Service-Router, den Lizenz-Header (X_API_TOKEN) und die Credit-Abrechnung. Dies ist die Laufzeit-Alternative zu den Konstanten CHAMEVO_AI_{TOOL}_ENDPOINT / _KEY / _MODEL.
apply_filters("chamevo_ai_{$tool}_config", array $config, string $tool): array
Konfigurationsschlüssel Typ Beschreibung endpointstringProvider-URL. Nicht leer aktiviert den Custom-Modus. api_keystringAPI-Schlüssel (standardmäßig als Authorization: Bearer … gesendet) modelstringOptionaler Modell-Identifier headersarrayRequest-Header methodstringHTTP-Methode (Standard POST)
add_filter('chamevo_ai_text2image_config', function($config, $tool) {
$config['endpoint'] = 'https://api.example.com/v1/images';
$config['api_key'] = 'sk-...';
$config['model'] = 'my-model';
return $config;
}, 10, 2);
Typ: Filter
Datei: src/Services/ServiceRouter/AIService.php
Schließt den direkten Provider-HTTP-Aufruf kurz. Geben Sie ein Array in der Service-Router-Form zurück, um den integrierten Request vollständig zu umgehen — nützlich für asynchrone Provider (erstellen + abfragen) oder Provider-SDKs. Gibt standardmäßig null zurück.
apply_filters("chamevo_ai_{$tool}_pre", ?array $result, array $context): ?array
$context enthält tool, die Tool-Eingaben (wie prompt oder image_url) und die aufgelöste config.
Typ: Filter
Datei: src/Services/ServiceRouter/AIService.php
Den Request-Body an das Schema des Providers anpassen, bevor er gesendet wird.
apply_filters("chamevo_ai_{$tool}_request_body", array $body, array $context): array
Typ: Filter
Datei: src/Services/ServiceRouter/AIService.php
Die an den Custom-Provider gesendeten Header festlegen. Standardmäßig Authorization: Bearer {api_key}, wenn ein Schlüssel gesetzt ist. Der Chamevo-Lizenz-Header wird im Custom-Modus niemals gesendet.
apply_filters("chamevo_ai_{$tool}_request_headers", array $headers, array $config): array
Typ: Filter
Datei: src/Services/ServiceRouter/AIService.php
Die Provider-Antwort in die Service-Router-Form normalisieren, damit der AJAX-Handler sie verarbeiten kann: ['status' => 'success', 'data' => ['output' => $url]]. output kann eine Remote-URL, ein Array von URLs oder eine data:image/…;base64,…-URI sein.
apply_filters("chamevo_ai_{$tool}_response", array $normalized, array $raw, array $config): array
Das Options-Array der allgemeinen Einstellungen ändern.
apply_filters('chamevo_general_settings', array $options): array
Ähnliche Filter existieren für andere Einstellungsgruppen:
Filter Einstellungsgruppe chamevo_features_settingsFeatures (Uploads, Photos, Text, Products, QR) chamevo_woocommerce_settingsWooCommerce-Integration chamevo_export_settingsExport und Cloud-Zustellung chamevo_advanced_settingsErweitert/Fehlerbehebung chamevo_print_profile_settingsDruckprofil-Optionen
Typ: Filter
Datei: src/Settings/Settings.php
Die Block-Struktur der Einstellungsseite ändern (Einstellungs-Tabs und -Abschnitte hinzufügen, entfernen oder neu anordnen).
apply_filters('chamevo_settings_blocks', array $blocks): array
Typ: Action
Datei: src/Admin/Woo/Product.php
Wird ausgelöst, nachdem ein WooCommerce-Produkt mit Chamevo-Daten dupliziert wurde.
do_action('chamevo_product_duplicated', WC_Product $duplicate, WC_Product $original, array $duplicated_fields)
Typ: Filter
Datei: src/Services/ServiceRouter/ApiService.php
Die Service-Router-API-Basis-URL überschreiben. Standard: https://sr.chamevo.com/api/.
apply_filters('chamevo_service_router_url', string $url): string
Typ: Filter
Datei: src/functions.php
Aktiviert den Dev-Assets-Modus. In diesem Modus erhält jedes Chamevo-Skript und -Stylesheet bei jedem Seitenaufruf einen frischen Versionsstempel (den Zeitstempel der Anfrage). Das gilt auch für die per Lazy Loading geladenen cv-*.entry.js-Chunks des Customizers. Browser liefern beim Testen Ihrer Änderungen nie ein veraltetes Bundle aus.
Ist der Modus deaktiviert, verwenden gebaute Bundles ihre Dateiänderungszeit als Version, andere Assets die Plugin-Version. Die Ausgabe in der Produktion bleibt unverändert.
apply_filters('chamevo_dev_assets', bool $enabled): bool
Parameter Typ Beschreibung $enabledbooltrue, wenn die Konstante CHAMEVO_DEV_ASSETS definiert und wahr ist, andernfalls false
Sie können den Modus auch mit einer Konstante aktivieren, zum Beispiel in der wp-config.php oder in einem lokalen Entwicklungs-Plugin, das vor Chamevo geladen wird:
define('CHAMEVO_DEV_ASSETS', true);
Oder mit dem Filter, zum Beispiel nur in einer lokalen Umgebung:
add_filter('chamevo_dev_assets', function ($enabled) {
return wp_get_environment_type() === 'local' ? true : $enabled;
});
Der Filter läuft nach der Konstantenprüfung, sodass er den Modus auch deaktivieren kann, wenn die Konstante gesetzt ist.
Aktivieren Sie den Dev-Assets-Modus niemals auf einer Produktivseite. Sonst erzwingt jeder Seitenaufruf, dass Browser jedes Chamevo-Skript und -Stylesheet erneut herunterladen.
Diese globalen Funktionen stehen zur Verwendung in Themes und Plugins zur Verfügung:
Funktion Beschreibung is_chamevo_product($post_id)Gibt true zurück, wenn dem Beitrag ein Chamevo-Produkt zugewiesen ist chamevo_has_content($post_id)Gibt Content-IDs zurück, wenn der Beitrag Chamevo-Daten hat, andernfalls false chamevo_get_option($key)Einen Chamevo-Einstellungswert abrufen chamevo_dev_assets_enabled()Gibt true zurück, wenn der Dev-Assets-Modus aktiv ist (Konstante oder Filter chamevo_dev_assets) chamevo_asset_version($file = null)Gibt den Versions-String zurück, den Chamevo für ein eingebundenes Asset verwendet: den Zeitstempel der Anfrage im Dev-Assets-Modus, andernfalls die Dateiänderungszeit oder die Plugin-Version