FOX - Currency Switcher for WooCommerce

woocs_sheduler_rates_updated

Le hook d'action 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 $currencies contient 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.