FOX - Currency Switcher for WooCommerce

woocs_sheduler_rates_updated

Der 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 $currencies enthä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.