Koşullu mantık
3 dk okuma
Koşullu mantık, bir alanı yalnızca diğer alanlar belirli değerlere sahipken gösterir. Düzenleyici yazarken düzenleme ekranında çalışır; saklanan veriyi veya temanızın yazdırdığını değiştirmez.
Kurulum
- Alanın Advanced options bölümünü açın ve Conditional logic sekmesine gidin.
- Şunu açın: Enable conditional logic. (Kapalıyken sekmede şu yazar:
When enabled, this field is shown or hidden based on the values of other fields in the same group.) - Şuna tıklayın: Add condition. Bir koşul üç bölümden oluşur:
Bölüm | Seçtiğiniz |
|---|---|
Alan | Aynı düzeydeki başka bir alan ( |
Operatör | Hangi operatörlerin göründüğü o alanın türüne bağlıdır, aşağıya bakın. |
Value ( | Karşılaştırılacak değer. Şunlar için gerekmez: Has value ve Is empty. |
- Birden çok koşulun nasıl birleşeceğini seçin: Match: and / or of the following conditions.
- and: tüm koşullar doğru olmalıdır.
- or: en az biri doğru olmalıdır.
- Grubu kaydedin.
Grupta başka alan yoksa sekmede şu yazar: No other fields are defined in this group. Add more fields to use conditional logic. Alan başına en fazla 20 koşul tutulur.
Operatörler
Operatör | Doğru olduğunda | Sunulduğu türler |
|---|---|---|
Has value | Diğer alan boş değil. | her tür |
Is empty | Diğer alan boş. | her tür |
Equals | Değerlerinden biri tam olarak Value ile aynıdır. | JSON olarak saklananlar dışındaki her tür |
Not equals | Değerlerinin hiçbiri Value değildir. | aynı |
Contains | Metni Value değerini içerir. | metin benzeri ve seçim türleri |
Does not contain | Metni Value değerini içermez. | metin benzeri ve seçim türleri |
Greater than | Sayı, Value değerinden büyüktür. | sayısal türler (Number, Range) |
Less than | Sayı, Value değerinden küçüktür. | sayısal türler |
JSON olarak saklanan alanlar (Checkbox list, ilişkiler, Group, Repeater, Gallery, ...) yalnızca Has value ve Is empty seçeneklerini sunar.
Şuraya ne yazılacağı: Value:
Alan türü | Değer |
|---|---|
Text, Text area, Email, URL | Metin. |
Number, Range | Sayı (girdi yalnızca sayı kabul eder). |
Select, Radio buttons, Button group | Seçeneğin value değeri (saklanan değer); etiketi değil. |
True / false |
|
Hangi alanları kullanabilirim?
Koşullar yalnızca kardeş alanları görür: aynı grubun aynı düzeyindeki alanlar. Group veya Repeater içinde bir koşul, aynı grup değerinin ya da aynı tekrarlayıcı satırının diğer alt alanlarına bakar. Koşullar başka bir gruptaki alanlara bakamaz ve bir alt alandan kök alana uzanamaz.
Bir koşul artık var olmayan bir alanı adlandırıyorsa o koşul doğru sayılır.
Gizli alanlara ne olur
Soru | Yanıt |
|---|---|
Gizli bir alanın değeri silinir mi? | Hayır. Gizleme hiçbir zaman veriyi silmez: gizli alan yine de değerini gönderir ve değer tabloda kalır. |
Gizli bir alan zorunlu mudur? | Hayır. Gizli bir alan, tarayıcıda da sunucuda da asla zorunlu değildir. |
Gizli alanlar temanızda görünür mü? | Evet. Koşullu mantık yalnızca bir düzenleme yardımcısıdır; şablonunuzun buna uyması gerekiyorsa şablon kodunuzda diğer alanın değerini kontrol edin. |
Sunucu aynı koşulları değerlendirir (kaydetmeden sonraki zorunlu alan denetimi için); bu nedenle kaydetme anında gizli olan zorunlu bir alan Saved, but these required fields are empty uyarısını tetiklemez.
Örnek
Bir "Product details" grubunda Sale price alanı yalnızca On sale işaretliyken görünür:
- Bir True / false alanı ekleyin:
on_sale, etiketi On sale. - Bir Number alanı ekleyin:
sale_price. - Şu alanda:
sale_pricekoşullu mantığı etkinleştirin ve şu koşulu ekleyin: On sale · Equals ·1.
REST API üzerinden aynı koşul şöyle görünür:
{
"key": "sale_price", "label": "Sale price", "type": "number",
"conditional_logic": {
"enabled": true,
"relation": "and",
"rules": [ { "field_key": "on_sale", "operator": "equals", "value": "1" } ]
}
}Sorun giderme
Sorun | Çözüm |
|---|---|
Alan her zaman görünür | Önce Enable conditional logic seçeneğinin açık olduğunu ve koşuldaki alanın grupta hâlâ bulunduğunu kontrol edin. |
İstediğim alanı seçemiyorum | Yalnızca aynı düzeydeki kardeş alanlar sunulur. Alanları aynı düzeye taşıyın. |
Select alanında Equals hiç eşleşmiyor | Seçeneğin etiketini değil, saklanan değerini yazın. |
Greater than seçeneği yok | Başvurulan alan sayısal değil. |
Hâlâ takıldınız mı? Destek ile iletişime geçin