Anasayfa Geliştiriciler İçin WordPress Eklentisi Kanca (Hook) Listesi

WordPress Eklentisi Kanca (Hook) Listesi

Son güncelleme tarihi Feb 03, 2026

Otomatik Gönderi Mekanizmasını Özelleştirme

Kargo Entegratör modülünün otomatik gönderi oluşturma davranışını aşağıdaki filtreler yardımıyla projenize özel hale getirebilirsiniz.

1. Otomatik Gönderi Tetikleyici Durumları Genişletme

Varsayılan olarak modül belirli sipariş durumlarında (örneğin: processing) tetiklenir. Eğer özel bir sipariş durumu (Custom Order Status) kullanıyorsanız veya "Beklemede" (on-hold) olan siparişlerin de otomatik kargoya iletilmesini istiyorsanız bu filtreyi kullanabilirsiniz.

add_filter('gcargo_auto_shipment_statuses', function($statuses) {
    $statuses[] = array(
        'text'  => 'Beklemede',
        'value' => 'on-hold',
    );
    return $statuses;
});

2. Otomatik Gönderi Zaman aşımı (Timeout) Listesini Genişletme

Sipariş durumu değiştikten ne kadar süre sonra Kargo Entegratör API'sine veri gönderileceğini seçtiğiniz listeyi bu filtre ile özelleştirebilirsiniz. Bu, özellikle sipariş üzerinde son kontrolleri yapmak için zaman kazanmak isteyen mağazalar için idealdir.

add_filter('gcargo_auto_shipment_timeouts', function($timeouts) {
    $timeouts[] = array(
        'text'  => '1 Saat',
        'value' => 3600,
    );
    return $timeouts;
});

Kargo Entegratör Verilerini Manipüle Etme

gcargo_shipment_map_wc_order_request ve gcargo_returned_map_wc_order_request filtreleri, sipariş verilerini Woo'dan alıp Kargo Entegratör API'sine iletilmeden hemen önce tetiklenir. Bu filtreler sayesinde, gönderi etiketi oluşturulmadan önce ürün adlarını, desi bilgilerini veya alıcı detaylarını programatik olarak değiştirebilirsiniz.

Aşağıdaki kod bloğu; ürün adını düzenleme, özel desi hesaplama ve kargo verisine müdahale etme gibi senaryoları kapsar:

add_filter('gcargo_shipment_map_wc_order_request', function($gcargo_request, $order) {
    // Ürün satırlarını döngüye alarak başlıkları güncelle
    $gcargo_request['lines'] = array_map(function($line) {
        // Sipariş öğesi meta verisini al
        $sample_meta_value = wc_get_order_item_meta($line['platform_id'], '_my_sample_meta_key', true);
        
        // Ürün adına meta değerini ekle
        if (!empty($sample_meta_value)) {
            $line['title'] = $line['title'] . ' - ' . $sample_meta_value;
        }
        
        return $line;
    }, $gcargo_request['lines']);

    // Kapıda ödeme (COD) ise tahsil edilecek tutara 100 TL ekle
    if ($order->get_payment_method() === 'cod') {
        $gcargo_request['total'] = $order->get_total() + 100;
    }

    return $gcargo_request;
}, 10, 2);