2026年11月12日
2026年11月12日
Gravity Forms Kullanımı: Form, Koşullu Mantık, Bildirim E-postası
Bu makale, Japonca orijinalin yerelleştirilmiş sürümüdür. Japonca orijinali oku
Gravity Forms, WordPress.org'da dağıtılmayan ücretli bir form eklentisidir. Koşula göre alanların gösterilip gizlenmesini sağlayan "koşullu mantık", gönderilen içeriğe göre bildirim alıcılarının yönlendirilmesi, gönderilen verilerin (girdilerin, entries) veritabanında saklanması ve dışa aktarılması gibi şeyleri yönetim ekranından ayarlayabilirsiniz. Bu yazıda temel bir formun nasıl oluşturulacağı ve geliştiricilere yönelik kancaların kullanımı anlatılır. Lisans içeriği ve ekran öğesi adları, Kasım 2026 itibarıyla Gravity Forms'un resmî sitesi ve belgelerinden (İngilizce) doğrulanmıştır. Ekran, İngilizce öğe adlarıyla yazılmıştır. Türkçe arayüz kullanıyorsanız ifadeler farklı olabilir.
Lisans ve kullanılabilir eklentiler
Lisansa göre kullanılabilecek site sayısı ve eklentiler değişir.
| Lisans | Site sayısı | Başlıca eklentiler |
|---|---|---|
| Basic | 1 | Mailchimp, HubSpot, reCAPTCHA gibi temel eklentiler |
| Pro | 3 | Basic'in içeriğine ek olarak Stripe, PayPal Checkout, Square, Zapier, Slack vb. |
| Elite | Sınırsız | Tüm eklentiler (Webhooks, User Registration, Signature, Survey vb.). Çoklu siteyi de destekler |
Gönderilen verileri dış sistemlere ileten Webhooks eklentisi yalnızca Elite'te (ve kâr amacı gütmeyen kuruluşlara yönelik lisansta) kullanılabilir. Ödeme için Stripe veya PayPal Checkout, Pro ve üzerindedir. Satın almadan önce, gereken eklentilerin hangi lisansa dahil olduğunu resmî fiyat sayfasından kontrol edin.
Kurulum ve lisans anahtarının kaydı
Gravity Forms'un resmî sitesindeki hesap sayfasından eklentinin ZIP dosyasını indirin ve "Eklentiler → Yeni Ekle → Eklenti Yükle" (Plugins → Add New → Upload Plugin) ile kurup etkinleştirin. WP-CLI kullanıyorsanız şöyledir.
wp plugin install /path/to/gravityforms.zip --activate
Lisans anahtarını "Forms → Settings" ekranına girin. Aynı ayarı birden fazla ortama dağıtırken, wp-config.php içine sabit olarak yazma yöntemi de vardır. Sabiti yazarsanız, ayar ekranındaki lisans anahtarı alanı değiştirilemez olarak görünür.
define( 'GF_LICENSE_KEY', 'YOUR-LICENSE-KEY-HERE' );
Formu oluşturma ve yerleştirme
- Yönetim ekranında "Forms → New Form"u açın, form adını verip oluşturun.
- Sağdaki "Add Fields" bölümünden ad (Name), e-posta adresi (Email), telefon numarası (Phone), seçenekler (Drop Down), gövde metni (Paragraph Text), onay işareti (Consent) gibi alanları yerleştirin.
- Her alana tıkladığınızda ayarları açılır. Zorunlu yapacağınız öğelerde "Required"ı açın.
- "Save Form" ile kaydedin.
Formu bir sayfaya koymak için blok düzenleyicide "Gravity Forms" bloğunu ekleyip oluşturduğunuz formu seçin. Kısa kodla yerleştirecekseniz biçim şöyledir; id, form listesinde görünen formun kimliğidir (ID).
[gravityform id="1" title="false"]
Koşullu mantıkla alanları gösterme ve gizleme
"İletişim türü 'İşe alım hakkında' olduğunda yalnızca özgeçmiş yükleme alanını göster" gibi göster/gizle işlemleri, koşullu mantıkla (Conditional Logic) ayarlanır.
- Form düzenleyicide, gösterilip gizlenecek alana (örnek: özgeçmiş dosya yükleme) tıklayın.
- Alan ayarlarındaki "Conditional Logic"i açın ve "Enable Conditional Logic"i açın.
- "Show (göster)" veya "Hide (gizle)" ile koşulu "All (hepsini sağlıyorsa)" veya "Any (herhangi birini sağlıyorsa)" olarak seçin.
- Koşul satırında kaynak alanı (iletişim türü), karşılaştırmayı (is) ve değeri (İşe alım hakkında) seçin. Satırın yanındaki artıyla koşul ekleyebilirsiniz.
Bildirim e-postalarına ve onay mesajlarına da ayrı ayrı koşullu mantık ayarlanabilir.
Bildirim e-postasını ayarlama
Bildirim e-postaları "Forms → ilgili form → Form Settings → Notifications" bölümünde ayarlanır. Form oluşturulduğunda yöneticiye yönelik bir bildirim hazır gelir. "Add New" ile otomatik yanıt gibi bildirimler ekleyebilirsiniz.
| Öğe | İçerik |
|---|---|
| Send To | Alıcı. "Enter Email" sabit adres, "Select a Field" formdaki e-posta adresi alanı, "Configure Routing" ise girilen içeriğe göre alıcıyı yönlendirmedir |
| From Email | Gönderen. {admin_email} (WordPress'in "Ayarlar → Genel" (Settings → General) bölümündeki yönetici e-posta adresi) veya sabit bir adres |
| Reply To | Yanıt adresi. Yöneticiye giden bildirimlerde, bilgi gönderen kişinin e-posta adresi alanının birleştirme etiketini (merge tag) koyarsanız yanıtlamak kolaylaşır |
| Subject / Message | Konu ve gövde. Birleştirme etiketleriyle girilen içeriği yerleştirebilirsiniz |
Birleştirme etiketleri, gönderilen değeri araya yerleştiren simgelerdir. Alan değeri {etiket:alanID} biçimindedir (örnek: {Name:1}; etiket atlanıp {:1} olarak da yazılabilir), {all_fields} ise tüm girilen içeriği bir tablo olarak yerleştirir. Mesaj alanının sağ üstündeki birleştirme etiketi düğmesinden seçerseniz, alan kimliğini aramadan girebilirsiniz.
Gönderen adresini sitenizle aynı alan adındaki bir adres yaparsanız, istenmeyen e-posta sayılma olasılığı azalır. Bilgi gönderen kişinin e-posta adresini gönderen yapmaktan kaçının, Reply To'ya koyun.
Gönderim sonrası onay mesajı
Gönderimden sonraki görünüm "Form Settings → Confirmations" bölümünde ayarlanır. Üç tür vardır.
- Text: Formun yerinde mesaj gösterir (varsayılan)
- Page: Sitedeki bir sayfaya yönlendirir
- Redirect: Belirtilen bir URL'ye yönlendirir
Bir gönderim tamamlandı sayfası hazırlayıp reklam veya erişim analizi ölçümünde kullanacaksanız Page veya Redirect seçin.
PHP ile doğrulama ekleme
Yönetim ekranı ayarlarının yetmediği girdi doğrulamaları gform_field_validation filtresiyle eklenebilir. Kanca adının arkasına _formKimliği_alanKimliği eklerseniz yalnızca o alana uygulanır. Aşağıdaki örnek, form kimliği 1'in alan kimliği 3'üne girilen telefon numarasını doğrular. Temanın functions.php dosyasına veya kendi eklentinize yazın.
<?php
// Form kimliği 1, alan kimliği 3'teki telefon numarasını doğrula
add_filter( 'gform_field_validation_1_3', function ( $result, $value, $form, $field ) {
if ( ! is_string( $value ) || '' === $value ) {
return $result; // Boş bırakılma durumu alanın "Required" ayarına bırakılır
}
$digits = str_replace( array( '-', ' ' ), '', $value );
if ( ! preg_match( '/^0\d{9,10}$/', $digits ) ) {
$result['is_valid'] = false;
$result['message'] = 'Telefon numarasını 0 ile başlayan 10 veya 11 haneli bir sayı olarak girin (tire kullanılabilir).';
}
return $result;
}, 10, 4 );
Form kimliği ve alan kimliği, form düzenleyicide alanı seçtiğinizde görüntülenir. Formu yeniden oluşturursanız kimlikler değişir; bu yüzden canlı ve geliştirme ortamında kimliklerin aynı olup olmadığını kontrol edin. (Örnekteki telefon numarası deseni, 0 ile başlayan 10-11 haneli Japonya telefon numaralarına göredir.)
Gönderimden sonra dışarıya bildirim
Webhooks eklentisi olmayan bir lisansta her gönderimde Slack gibi bir yere haber vermek istiyorsanız, gform_after_submission eylemiyle işlemi yazabilirsiniz. Bu eylem, girdinin kaydedilmesi ve bildirim e-postasının gönderilmesi bittikten sonra çalışır. Spam olarak belirlenen girdilerde de çalıştığından, durumu kontrol ettikten sonra gönderin. Ayrıca Pro ve üzeri lisansta Slack eklentisi veya Zapier eklentisiyle ayarlama yöntemi de vardır.
<?php
// Form kimliği 1 gönderildikten sonra Slack'in Incoming Webhook'una bildir
add_action( 'gform_after_submission_1', function ( $entry, $form ) {
if ( 'spam' === rgar( $entry, 'status' ) ) {
return;
}
// Webhook URL'si wp-config.php içinde define( 'MY_SLACK_WEBHOOK_URL', '...' ); ile yazılır
if ( ! defined( 'MY_SLACK_WEBHOOK_URL' ) ) {
return;
}
wp_remote_post( MY_SLACK_WEBHOOK_URL, array(
'headers' => array( 'Content-Type' => 'application/json' ),
'body' => wp_json_encode( array(
'text' => sprintf( 'Yeni iletişim talebi: %s', rgar( $entry, '1' ) ),
) ),
'timeout' => 5,
) );
}, 10, 2 );
rgar( $entry, '1' ), alan kimliği 1'in değeridir. Ad (Name) alanı gibi birden fazla giriş alanı olan alanlar, '1.3' (ad), '1.6' (soyad) gibi ondalık noktalı kimlikle alınır. Webhook URL'si gizli bir bilgidir; bu yüzden doğrudan koda yazmayın ve herkese açık depoya da koymayın.
Girdileri kontrol etme ve dışa aktarma
Gönderilen veriler WordPress veritabanında saklanır ve "Forms → Entries" bölümünde listelenir. CSV olarak dışa aktarmak için "Forms → Import/Export"u açın, "Export Entries"de formu seçin, dışa aktarılacak alanları ve dönemi belirtip indirin.
PHP'den almak için GFAPI::get_entries() kullanılır. WP-CLI ile en son 10 kaydı kontrol etme örneği.
wp eval 'echo wp_json_encode( GFAPI::get_entries( 1, array(), null, array( "offset" => 0, "page_size" => 10 ) ) );'
Dikkat edilecekler
- Gönderilen veriler kişisel bilgi içerir. Saklanması gerekmiyorsa form ayarlarında saklama süresi belirleyip silme, dışa aktarılan CSV'yi ortada bırakmama gibi, kullanım biçimini önceden belirleyin.
- Bildirim e-postaları ulaşmıyorsa, nedeni çoğunlukla Gravity Forms değil sunucunun e-posta gönderimidir. SMTP üzerinden gönderen bir eklenti kullanmak düzelme sağlayabilir.
- PHP kodu eklemeden önce, form kimliği ve alan kimliğinin doğru olup olmadığını, hazırlık (staging) ortamında çalışmasını kontrol edin.
WordPress hakkında sorunuz mu var? Bu sitenin yayıncısı Japonya'dadır ve Japonca yanıt verir. İletişim (Japonca)