پرش به محتویات

اسکیمای Element Conditions (Element Conditions Schema)


title: اسکیمای Element Conditions (Element Conditions Schema) description: طرح کامل برای شرایط نمایش عناصر: کلیدهای شرط، عملگرهای مقایسه، و ساختار داده OR-of-AND.


شرایط نمایش عنصر کنترل می‌کند که آیا یک عنصر در قسمت جلویی نمایش داده می‌شود یا خیر. آنها در کلید _conditions در داخل شی settings هر عنصر ذخیره می‌شوند.

ساختار داده (Data structure)

شرایط از ساختار OR-of-AND استفاده می‌کنند: آرایه بیرونی شامل گروه های OR است و هر آرایه داخلی حاوی موارد AND است. اگر هر گروه OR به درستی ارزیابی شود، عنصر رندر می‌شود، و زمانی که *همه موارد AND آن درست باشد، یک گروه OR درست است.

conditionItem properties

هر مورد شرایط دارای ویژگی‌های زیر است:

ویژگی (Property) نوع (Type) الزامی (Required) توضیح (Description)
id string \ integer بله
key string Yes نوع شرایط (به شماره زیر مراجعه کنید)
compare string Yes عملگر مقایسه (به جدول زیر مراجعه کنید)
value any Conditional ارزشی که باید با آن مقایسه کرد. هنگامی‌که مقایسه empty یا empty_not است، لازم نیست.
dynamic_data string No برچسب داده پویا برای استفاده به عنوان منبع ارزش

مثال (Example)

{
  "_conditions": [
    [
      { "id": "abc123", "key": "user_logged_in", "compare": "==", "value": true },
      { "id": "def456", "key": "user_role", "compare": "==", "value": "administrator" }
    ],
    [
      { "id": "ghi789", "key": "dynamic_data", "compare": "contains", "value": "sale", "dynamic_data": "{post_title}" }
    ]
  ]
}

این به صورت زیر است: نشان دادن عنصر اگر (کاربر وارد شده است و مدیر است) یا (عنوان پست حاوی "فروش" است).

کلیدهای شرط (Condition keys)

عمومی - browser - current_url - date - datetime - dynamic_data - featured_image - operating_system - referer - time - weekday

پست - post_author - post_date - post_id - post_parent - post_status - post_title

کاربر - user_id - user_logged_in - user_registered - user_role

ووکامرس - woo_product_category - woo_product_featured - woo_product_new - woo_product_purchased_by_user - woo_product_rating - woo_product_sale - woo_product_sold_individually - woo_product_stock_management - woo_product_stock_quantity - woo_product_stock_status - woo_product_tag - woo_product_type

عملگرهای مقایسه موجود بر اساس کلید شرط متفاوت است. به عنوان مثال، post_id از عملگرهای ریاضی (==، !=، >=، <=، >، <) پشتیبانی می‌کند، در حالی که user_logged_in تنها از == و != پشتیبانی می‌کند.

عملگرهای مقایسه (Comparison operators)

عملگر (Operator) توضیح (Description)
== برابر (مقایسه آزاد، آرایه ها را از طریق تقاطع پشتیبانی می‌کند)
!= مساوی نیست (مقایسه سست)
>= بزرگتر یا مساوی
<= کمتر یا مساوی
> بزرگتر از
< کمتر از
contains رشته حاوی رشته فرعی است
contains_not رشته شامل رشته فرعی نیست
empty مقدار خالی است (بدون نیاز به فیلد مقدار)
empty_not مقدار خالی نیست (بدون نیاز به فیلد مقدار)

توسعه پذیری

کلیدهای شرط و عملگرهای مقایسه از طریق قلاب های PHP قابل فیلتر هستند:

  • bricks/conditions/groups: add custom condition groups
  • bricks/conditions/options: add custom condition keys with their own compare operators
  • bricks/conditions/result: modify the boolean result of any individual condition evaluation

افزونه های شخص ثالث می‌توانند کلیدهای شرایط اضافی را فراتر از موارد ذکر شده در بالا معرفی کنند.