woocs_sheduler_rates_updated
woocs_sheduler_rates_updated (depuis v.2.4.5/1.4.5) se déclenche après la fin du processus de mise à jour automatique des taux de change. Ce hook est déclenché par la tâche cron de WordPress lorsque les taux de change sont actualisés à partir de sources externes.Quand se déclenche-t-il ?
Ce hook s'exécute à la fin de la méthode rate_auto_update(), après :
- Les nouveaux taux sont récupérés depuis l'API des taux de change
- Les données de devise sont validées et mises à jour
- Les modifications sont enregistrées dans la base de données
- Une notification par e-mail facultative est envoyée à l'administrateur
Cas d'utilisation
1. Systèmes de notification personnalisés
Envoyer des mises à jour à Slack, Telegram ou d'autres plateformes de messagerie :
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. Surveillance des changements de taux
Alerter si les taux changent de manière spectaculaire :
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 avec des systèmes externes
Mettre à jour les taux dans votre ERP, logiciel de comptabilité ou autres plateformes :
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. Recalcul personnalisé des prix
Déclencher des mises à jour supplémentaires pour les champs meta personnalisés ou les données associées :
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. Journalisation et analyses
Suivre l'historique des taux pour 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é et minutage
Ajoutez une priorité si l'ordre d'exécution est important :
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
Remarques
- Ce hook ne se déclenche que lors des mises à jour cron automatiques, pas lors des mises à jour manuelles des taux depuis le panneau d'administration
- Le tableau
$currenciescontient les données mises à jour complètes déjà enregistrées dans la base de données - Le hook s'exécute après la notification par e-mail facultative à l'administrateur
Ce hook offre de puissantes capacités d'intégration pour étendre les fonctionnalités de WOOCS avec une logique métier personnalisée, une surveillance et une synchronisation avec des systèmes tiers.