woocs_sheduler_rates_updated
woocs_sheduler_rates_updated (seit v.2.4.5/1.4.5) Action-Hook wird ausgelöst, nachdem der automatische Aktualisierungsprozess der Währungskurse abgeschlossen ist. Dieser Hook wird durch den WordPress-Cron-Job ausgelöst, wenn Wechselkurse von externen Quellen aktualisiert werden.Wann wird es ausgelöst?
Dieser Hook wird am Ende der Methode rate_auto_update() ausgeführt, nachdem:
- Neue Kurse von der Wechselkurs-API abgerufen wurden
- Währungsdaten validiert und aktualisiert wurden
- Änderungen in der Datenbank gespeichert wurden
- Optional eine E-Mail-Benachrichtigung an den Administrator gesendet wurde
Anwendungsfälle
1. Benutzerdefinierte Benachrichtigungssysteme
Senden Sie Updates an Slack, Telegram oder andere Messaging-Plattformen:
add_action('woocs_sheduler_rates_updated', function($currencies) {
$message = "💱 Currency rates updated:\n";
foreach ($currencies as $code => $curr) {
if ($curr['is_etalon'] == 1) continue;
$message .= "{$code}: {$curr['rate']}\n";
}
// Send to Telegram
wp_remote_post('https://api.telegram.org/bot' . YOUR_BOT_TOKEN . '/sendMessage', [
'body' => [
'chat_id' => YOUR_CHAT_ID,
'text' => $message
]
]);
});
2. Überwachung von Kursänderungen
Warnen Sie, wenn sich Kurse drastisch ändern:
add_action('woocs_sheduler_rates_updated', function($currencies) {
$old_rates = get_option('woocs_previous_rates', []);
foreach ($currencies as $code => $curr) {
if (isset($old_rates[$code])) {
$change = abs(($curr['rate'] - $old_rates[$code]) / $old_rates[$code] * 100);
if ($change > 5) { // More than 5% change
error_log("⚠️ ALERT: {$code} rate changed by {$change}%");
// Send urgent notification
}
}
}
// Save current rates for next comparison
$rates_only = array_column($currencies, 'rate', 'name');
update_option('woocs_previous_rates', $rates_only);
});
3. Synchronisation mit externen Systemen
Aktualisieren Sie Kurse in Ihrem ERP, Ihrer Buchhaltungssoftware oder anderen Plattformen:
add_action('woocs_sheduler_rates_updated', function($currencies) {
// Sync to external API
wp_remote_post('https://your-erp.com/api/rates', [
'body' => json_encode($currencies),
'headers' => ['Content-Type' => 'application/json']
]);
});
4. Benutzerdefinierte Preisneuberechnung
Lösen Sie zusätzliche Aktualisierungen für benutzerdefinierte Meta-Felder oder zugehörige Daten aus:
add_action('woocs_sheduler_rates_updated', function($currencies) {
// Update custom price fields
$products = wc_get_products(['limit' => -1]);
foreach ($products as $product) {
// Your custom recalculation logic
$custom_price = get_post_meta($product->get_id(), '_custom_currency_price', true);
if ($custom_price) {
// Recalculate based on new rates
update_post_meta($product->get_id(), '_cached_converted_price',
$custom_price * $currencies['EUR']['rate']);
}
}
});
5. Protokollierung & Analyse
Verfolgen Sie Kursverläufe zur Analyse:
add_action('woocs_sheduler_rates_updated', function($currencies) {
global $wpdb;
foreach ($currencies as $code => $curr) {
if ($curr['is_etalon'] == 1) continue;
$wpdb->insert('wp_currency_rate_history', [
'currency_code' => $code,
'rate' => $curr['rate'],
'updated_at' => current_time('mysql')
]);
}
});
Priorität & Zeitplan
Fügen Sie eine Priorität hinzu, wenn die Ausführungsreihenfolge wichtig ist:
add_action('woocs_sheduler_rates_updated', 'my_function', 10, 1); // Default priority
add_action('woocs_sheduler_rates_updated', 'my_urgent_function', 5, 1); // Runs first
Hinweise
- Dieser Hook wird nur während automatischer Cron-Updates ausgelöst, nicht bei manuellen Kursaktualisierungen über das Admin-Panel.
- Das Array
$currenciesenthält die vollständig aktualisierten Daten, die bereits in der Datenbank gespeichert wurden. - Der Hook wird nach der optionalen Administrator-E-Mail-Benachrichtigung ausgeführt.
Dieser Hook bietet leistungsstarke Integrationsmöglichkeiten zur Erweiterung der WOOCS-Funktionalität mit benutzerdefinierter Geschäftslogik, Überwachung und Synchronisation von Drittsystemen.