[tsb_events columns="3" limit="24" show_filters="yes"] دایرکتوری کارت رویدادها با جستجو، روز، تاریخ، دستهبندی، شهر و مرتبسازی
[tsb_event_card id="123"] کارت مستقل یک رویداد
[tsb_single_event id="123"] صفحه کامل تکی رویداد
[tsb_event_hero id="123"] Hero رویداد: تصویر، عنوان، وضعیت و نزدیکترین اجرا
[tsb_event_info id="123"] اطلاعات خلاصه رویداد
[tsb_event_sessions id="123"] سانسهای قابل رزرو رویداد
[tsb_event_gallery id="123"] گالری تصاویر رویداد
[tsb_event_venue id="123"] اطلاعات سالن رویداد
[tsb_event_price id="123"] باکس قیمت رویداد
[tsb_event_organizer id="123"] اطلاعات برگزارکننده رویداد
[tsb_single_session id="15"] صفحه کامل تکی سانس
[tsb_session_info id="15"] زمان، ظرفیت، قیمت، وضعیت و Hold سانس
[tsb_session_seat_map id="15"] نقشه انتخاب صندلی همان سانس
[tsb_sessions event_id="123" style="cards"] لیست کارت سانسهای یک رویداد
[tsb_seat_selection session_id="15"] صفحه/بخش مستقل انتخاب صندلی
[tsb_single_venue id="20"] صفحه کامل تکی سالن
[tsb_venue id="20"] اطلاعات پایه سالن + نقشه جغرافیایی
[tsb_venue_events venue_id="20"] رویدادهای آینده یک سالن
[tsb_city_events city="tehran"] رویدادهای یک شهر
[tsb_category_events category="concert"] رویدادهای یک دستهبندی
[tsb_organizer_events organizer="sample-organizer"] رویدادهای یک برگزارکننده
[tsb_ticket_detail code="ABC123"] جزئیات یک بلیت؛ فقط برای صاحب بلیتِ لاگینشده
[tsb_seat_map map_id="1" event_id="10" session_id="20" product_id="123" hold_minutes="10"] نقشه تعاملی انتخاب چند صندلی
[tsb_seat_map_preview map_id="1"] پیشنمایش ساده نقشه صندلی
[tsb_my_tickets] لینک سریع به مرکز بلیتهای کاربر
[tsb_event_buy_button event_id="123"]/session/15/ — صفحه تکی سانس
/seat-selection/15/ — صفحه مستقل انتخاب صندلی
/events/city/tehran/ — صفحه رویدادهای یک شهر
/events/organizer/sample-organizer/ — صفحه رویدادهای یک برگزارکننده
Permalink خود Event — صفحه تکی رویداد به صورت پیشفرض
Permalink خود Venue — صفحه تکی سالن به صورت پیشفرض
Taxonomy رویداد — صفحه دستهبندی Event؛ برای طراحی Elementor از tsb_category_events استفاده کنید
چیدمان پیشنهادی Elementor
صفحه آرشیو رویدادها: [tsb_events]
Single Event: Hero + Event Info + Sessions + Gallery + Venue + Price + Organizer
Single Session: [tsb_single_session] یا Session Info + Session Seat Map
Single Venue: [tsb_single_venue] یا Venue + Venue Events
صفحه انتخاب صندلی مستقل: [tsb_seat_selection]
حساب کاربری: [tsb_my_tickets] و Endpointهای بلیت WooCommerce
اتصال WooCommerce و فعال شدن دکمه سبد خرید
برای هر Event یک محصول WooCommerce لازم است. از v3.0.6 اگر محصول معتبر متصل نباشد، TSB بهصورت خودکار یک محصول مجازی و مخفی سیستمی میسازد و شناسه آن را در Event ذخیره میکند. قیمت نهایی محصول از قیمت صندلی انتخابشده جایگزین میشود. دکمه «ادامه و افزودن به سبد خرید» فقط پس از انتخاب صندلی و تأیید موفق Hold فعال میشود.محصول سیستمی WooCommerce
اگر Event محصول معتبر نداشته باشد، TSB یک محصول مجازی و مخفی سیستمی برای فروش بلیت میسازد و قیمت نهایی هر Cart Item از قیمت صندلی جایگزین میشود.تاریخ و ساعت سانس
ورودی تاریخ سانس میتواند شمسی مثل 1405/06/10 19:30 یا میلادی مثل 2026-09-01 19:30 باشد. اعداد فارسی و انگلیسی پشتیبانی میشوند. تاریخ شروع الزامی است و مقدار 0000-00-00 00:00:00 دیگر پذیرفته نمیشود.ذخیره سانس و سازگاری PHP
از نسخه 3.0.8 مسیر ذخیره سانس با PHP 7.4+ سازگار است و در صورت خطای AJAX یا دیتابیس، پیام واقعی خطا در همان فرم نمایش داده میشود. پس از ذخیره موفق، شناسه و مقدار واقعی رکورد دیتابیس تأیید میشود.توکن Hold و زمان انقضا
از نسخه 3.0.9 هر نمونه نقشه صندلی توکن Hold دقیق خودش را نگه میدارد و همان توکن را به Cart میفرستد. زمان انقضا نیز مستقیماً با timezone وردپرس محاسبه میشود تا اختلاف ساعت سرور باعث انقضای فوری نشود.Phase 22 — Reservation Operations Center
مسیر مدیریت: TSB → رزروها و بلیتها. ساختار مدیریتی بر پایه Reservation → Tickets → Seats → Payment/Order است؛ بنابراین یک خرید چندصندلی یک رزرو اصلی دارد و هر صندلی بلیت مستقل خود را حفظ میکند.جستجوی سریع با نام، موبایل، ایمیل، کد رزرو، Order ID و Ticket Code
فیلتر بر اساس Event، Session، Venue، City، وضعیت پرداخت، وضعیت Ticket و بازه تاریخ
نماهای مستقل Reservation، Ticket و Seat
رزرو دستی چندصندلی با انتخاب Event → Session → Seat
لغو یک Ticket و آزادسازی همان Seat بدون آسیب به بلیتهای دیگر رزرو
لغو کل Reservation با حفظ بلیتهای استفادهشده
مشاهده QR و ویرایش نام شرکتکننده
چاپ گروهی بلیت و فاکتور؛ از پنجره Print مرورگر گزینه Save as PDF قابل استفاده است
Bulk Cancel، ارسال مجدد SMS و Export CSV
Timeline رزرو و اتصال رزروهای WooCommerce به Ticketها
Phase 23 — Event Studio
صفحه ویرایش Event اکنون یک رابط تببندیشده حرفهای دارد: اصلی، نمایش در سایت، گالری و ویدئو، فروش و بلیت، قوانین، برگزارکننده و SEO/تکمیلی.تاریخ نمایشی Frontend: در تب «نمایش در سایت» سه حالت وجود دارد: Auto از نزدیکترین Session، Custom با تاریخ مستقل، یا Label برای متن کاملاً سفارشی. این تاریخ روی Event Card و Hero صفحه Event قابل نمایش است و تاریخ واقعی Sessionها را تغییر نمیدهد.Phase 24 — Event Advanced & Checkout Field Builder
Event Studio شامل تب «اطلاعات محتوایی» برای ژانر، مدت زمان، کارگردان، زبان، منطقه، کشور، تهیهکننده، بازیگران و گروه اجرایی است. قابلیتهای گزارش/رزرو موجود دوباره ساخته نشدهاند؛ از کارتهای مدیریتی داخل Event مستقیماً با فیلتر همان Event باز میشوند.Checkout Field Builder: در تب «فیلدهای خرید» میتوان فیلدهای Text, Number, Email, Phone, Textarea, Select, Radio, Checkbox و Date تعریف کرد. هر فیلد دارای Slug، Required، Enabled، Placeholder، Options و Sort است.Scope = Reservation یعنی فیلد یک بار برای کل خرید Event نمایش داده میشود. Scope = Ticket یعنی برای هر صندلی/بلیت جداگانه تکرار و روی همان WooCommerce Order Item ذخیره میشود. اطلاعات Ticket-level در Reservation Operations Center نیز نمایش داده میشود.Phase 25 — Notification Center
مسیر: TSB → اطلاعرسانی. مدیر میتواند برای Hold، خرید موفق/صدور بلیت، لغو، پرداخت ناموفق، Refund کامل و Refund جزئی، ارسال SMS و Email را بهصورت مستقل برای کاربر یا مدیر روشن/خاموش کند.قالب هر پیام قابل ویرایش است و Tokenهایی مثل {order_id}، {event_title}، {ticket_count}، {seats}، {ticket_codes}، {amount} و {customer_name} دارد. تست SMS و Email نیز داخل همان صفحه موجود است.ذخیره Event و Session: فرم AJAX سانس دیگر از HTML required استفاده نمیکند؛ بنابراین خالی بودن تاریخ سانس جلوی Publish/Update خود Event را نمیگیرد. تاریخ شروع همچنان هنگام کلیک روی «ذخیره سانس» الزامی و Server-side validated است.Phase 26 — رسانه وردپرس و فارسیسازی پنل
فیلدهای رسانهای Event و Venue دیگر نیاز به وارد کردن دستی Attachment ID ندارند. بنر، لوگو، تصویر اشتراکگذاری، ویدئو، PDF و گالری تصاویر مستقیماً از کتابخانه رسانه وردپرس انتخاب میشوند. گالری از انتخاب چندتایی پشتیبانی میکند.شناسه فایلها همچنان بهصورت داخلی ذخیره میشود تا معماری افزونه پایدار بماند، اما مدیر سایت نیازی به مشاهده یا تایپ شناسه ندارد. همچنین بخش بزرگی از عبارات انگلیسی پنل مدیریت به فارسی یکدست تبدیل شده است.Phase 27 — کوپنها و تخفیفهای TSB
مسیر: TSB → کوپنها و تخفیفها. کوپن استاندارد ووکامرس موتور اصلی است؛ بنابراین نوع تخفیف، درصد/مبلغ، تاریخ انقضا، حداقل/حداکثر خرید و سقف مصرف از امکانات ووکامرس استفاده میکنند.TSB قوانین تخصصی اضافه میکند: محدودیت به Eventهای مشخص، Sessionهای مشخص، نوع صندلی، فقط VIP و فقط اولین خرید کاربر. تخفیف فقط روی بلیتهای واجد شرایط اعمال میشود. گزینه «غیرفعال کردن همه کوپنها برای این رویداد» نیز در Event Studio حفظ شده است.Hotfix 3.6.1 — انتخاب رسانه در Event Studio
فیلدهای ویدئو، PDF، گالری تصاویر و تصویر اشتراکگذاری در Event Studio بهطور کامل به Media Library وردپرس متصل شدند. مدیر دیگر نیازی به وارد کردن Attachment ID یا URL ندارد. بنر و لوگوی برگزارکننده نیز از همان انتخابگر رسانه استفاده میکنند.Hotfix 3.6.2 — پایداری اسکنر و Migration
خرابی Identifierهای PHP ناشی از فارسیسازی ناامن در ScannerPage و ReservationCenter اصلاح شد. فارسیسازی از این نسخه فقط روی متنهای نمایشی انجام میشود و نام Class/Namespace/JS Object دستنخورده میماند.SQLهای dbDelta با قالب استاندارد وردپرس بازنویسی شدند و نسخه دیتابیس با نسخه افزونه همگام شد تا Migration در هر بار لود تکرار نشود.Phase 28 — گروهها و فروش ظرفیت بدون صندلی
گروهها: Taxonomy جدید «گروه» برای Eventها اضافه شده است. هر گروه لوگو، کاور، توضیح کوتاه و یک برگه اختصاصی اختیاری دارد. برگه اختصاصی یک Page عادی وردپرس است و میتواند با Elementor طراحی شود. شورتکدهای [tsb_group_profile group="slug"] و [tsb_group_events group="slug"] برای استفاده در Elementor اضافه شدهاند.فروش بدون صندلی: در Event Studio → فروش و بلیت، نوع فروش «بدون صندلی / فروش فقط بر اساس ظرفیت» یا «ترکیبی» قابل انتخاب است. ظرفیت و قیمت از Session میآیند. سیستم Hold ظرفیت مستقل دارد، از فروش بیش از ظرفیت جلوگیری میکند و برای هر ورودی یک Ticket/QR مستقل ایجاد میشود.Phase 29 — یکپارچهسازی Native با Elementor
در صورت فعال بودن Elementor، دسته اختصاصی Ticket Seat Booking (TSB) در پنل Elementor نمایش داده میشود. ویجتهای Native این فاز: «گرید رویدادها»، «جزئیات رویداد»، «پروفایل گروه»، «رویدادهای گروه» و «لیست سانسها».ویجت Event Grid و Group Events دارای کنترل Responsive تعداد ستون هستند؛ برای مثال دسکتاپ 4، تبلت 2 و موبایل 1. منبع داده میتواند Dynamic باشد: Current Event / Current Group، بنابراین در Templateهای Elementor نیازی به وارد کردن اسلاگ ثابت آریان یا ID رویداد نیست.اگر Elementor فعال نباشد، TSB بدون خطا کار میکند و ویجتها فقط ثبت نمیشوند.Phase 30 — صفحات جامع و Context-Aware
این شورتکدها برای قرار گرفتن داخل Templateهای Elementor/Theme Builder طراحی شدهاند. در حالت عادی نیازی به ID یا Slug ندارند و از صفحه فعلی اطلاعات را تشخیص میدهند.شورتکد کاربرد نمونه
[tsb_group_page] UI جامع گروه فعلی: کاور، لوگو، معرفی، آمار و رویدادهای همان گروه. در Archive گروه کاملاً داینامیک است. [tsb_group_page columns="4"]
[tsb_event_category_page] UI جامع دستهبندی رویداد فعلی با معرفی و گرید رویدادهای همان Term. [tsb_event_category_page columns="3"]
[tsb_event_page] صفحه جامع Event فعلی؛ برای Template تکی رویداد. [tsb_event_page]
[tsb_venue_page] صفحه جامع سالن فعلی: اطلاعات، موقعیت، گالری، رویدادها و نقشههای صندلی مرتبط. [tsb_venue_page]
[tsb_session_page] UI جامع سانس. در مسیر TSB سانس، شناسه از Context دریافت میشود. [tsb_session_page id="15"]
[tsb_seat_map_page] نمای جامع یک نقشه صندلی همراه اطلاعات پایه و نقشه تعاملی موجود. [tsb_seat_map_page id="7"]
الگوی Elementor: یک Archive Template برای taxonomy گروه بسازید و فقط [tsb_group_page] را قرار دهید؛ همان یک Template برای آریان و همه گروههای دیگر داده متفاوت نشان میدهد. برای دستهبندی Event نیز همین کار را با [tsb_event_category_page] انجام دهید. گزینه برگه اختصاصی هر گروه فقط برای Overrideهای خاص باقی مانده و روش اصلی نیست.Hotfix 3.8.2 — صفحه سالن
بازگشت بینهایت هنگام نمایش «رویدادهای این سالن» برطرف شد. کارت رویداد دیگر برای ساخت خلاصه، فیلتر the_content صفحه سالن را دوباره اجرا نمیکند و رندر پیشفرض صفحات تکی نیز دارای محافظ بازگشت است.Phase 31 / v3.9.0 — صفحه حرفهای رویداد
[tsb_event_page] اکنون صفحه جامع و Context-Aware رویداد است. در Template تکی Elementor آن را بدون ID قرار دهید؛ رویداد فعلی خودکار تشخیص داده میشود. برای پیشنمایش دستی نیز [tsb_event_page id="123"] قابل استفاده است.UI شامل Hero، Badge و دسته/گروه، تاریخ و وضعیت فروش، CTA، اطلاعات سریع، خلاصه و توضیحات، سانسها، Buy Box چسبان، سالن، برگزارکننده، پشتیبانی، جزئیات تخصصی، قوانین، ویدئو/PDF، گالری، FAQ/Q&A و رویدادهای مرتبط است. بخشهای بدون داده خودکار مخفی میشوند.Audit Event Studio: فیلدهای نمایشی Event Studio در صفحه رویداد پوشش داده شدهاند. فیلدهای مدیریتی/فنی مانند یادداشت داخلی، Product ID، Checkout Field schema، Canonical/OpenGraph/Schema، Ticket Prefix و تنظیمات صرفاً سیستمی عمداً در فرانتاند چاپ نمیشوند.Phase 32 / v4.0.0 — داشبورد مدیریت فرانتاند
شورتکد [tsb_admin_dashboard] داشبورد مدیریت کل را خارج از wp-admin نمایش میدهد. افزونه بهصورت خودکار یک برگه با اسلاگ /tsb-manager/ میسازد و شورتکد را داخل آن قرار میدهد.در این فاز دسترسی فقط برای مدیر کل با capabilityهای manage_woocommerce یا manage_options فعال است. بخشها: مرکز کنترل، رویدادها، رزروها و بلیتها، گزارش فروش، سالنها، اسکن/گیت و تنظیمات مدیریت.این نسخه پایه برای Role برگزارکننده است. در فاز بعدی Role/Capability و مالکیت داده اضافه میشود تا برگزارکنندگان بدون دسترسی به wp-admin فقط اطلاعات و رویدادهای خودشان را در همین رابط ببینند.Phase 33 / v4.1.0 — حساب مالی و گزارش نموداری
داشبورد [tsb_admin_dashboard] اکنون بخش «حساب مالی» دارد. اطلاعات صاحب حساب، بانک، شماره حساب، کارت، شبا، شعبه و PayPal بهصورت امن در User Meta ذخیره میشوند. در فاز نقش برگزارکننده همین ساختار برای هر کاربر برگزارکننده مستقل خواهد بود.در صفحه عمومی و گزارش فروش، نمودار روند فروش اضافه شده است. نمودار مستقیماً از جدول رزروهای پرداختشده TSB ساخته میشود و شامل جمع بازه، میانگین روزانه و بیشترین فروش روزانه است.Phase 34 / v4.2.0 — ویرایش پروفایل فرانتاند
در داشبورد [tsb_admin_dashboard] بخش «پروفایل من» اضافه شده است. مدیر کل میتواند بدون ورود به wp-admin نام، نام خانوادگی، نام نمایشی، ایمیل، سمت شغلی، تلفن، آدرس، توضیحات، شبکههای اجتماعی و تصویر پروفایل را ویرایش کند.آپلود تصویر پروفایل از خود فرانتاند انجام میشود و تصویر به Media Library وردپرس اضافه میشود. همین ساختار در فاز Role برگزارکننده برای هر برگزارکننده مستقل استفاده خواهد شد.Phase 35 / v4.3.0 — کلون رویداد
قابلیت «کلون رویداد» هم در داشبورد فرانتاند و هم در مدیریت وردپرس اضافه شده است. نسخه کپی همیشه بهصورت Draft ساخته میشود و عنوان آن با «— کپی» مشخص میشود.محتوا، تصویر شاخص، Event Meta و Taxonomyهای رویداد کپی میشوند؛ اما Sessionها، فروشها، رزروها، بلیتها و Product ID ووکامرس عمداً کپی نمیشوند تا فروش ناخواسته یا تداخل داده ایجاد نشود.این سرویس بر پایه Capability نوشته شده تا در فاز برگزارکنندگان، فقط برگزارکنندهای که اجازه Clone دارد بتواند رویدادهای مجاز خودش را کپی کند.Phase 36 / v5.0.0 — Organizer Platform, Permission Matrix & Finance
نقش برگزارکننده به داشبورد فرانتاند متصل شد، wp-admin برای برگزارکننده مسدود میشود و دادههای Event بر اساس مالکیت محدود میشوند.Permission Matrix: دسترسیهای ریزدانه برای Event، Session، Venue، Seat Map، Group، Category، Reservation، Ticket، Report، Scanner، Coupon، Finance، Profile و Notification.Event Ownership: در ویرایش رویداد یک باکس «مالک / برگزارکننده» وجود دارد. مدیر کل میتواند هر Event را به برگزارکننده اختصاص دهد.Finance Engine: Ledger فروش/Refund، کمیسیون درصدی، کارمزد ثابت هر بلیت، Hold مالی، حداقل تسویه و درخواست Payout ایجاد شده است. رکوردها با source_key یکتا از ثبت تکراری محافظت میشوند.Admin UI: صفحه «TSB → برگزارکنندگان» برای ایجاد برگزارکننده، Permission Matrix و تنظیم کمیسیون افزوده شد. همان اطلاعات بهصورت خلاصه در داشبورد فرانتاند مدیر کل هم دیده میشود.UI v5: Design System داشبورد با Sidebar، Card، Table، Permission Chip و Organizer Card مدرنتر شده است.v5.0.1 — Hotfix دسترسی مدیریت برگزارکنندگان
صفحه «برگزارکنندگان و دسترسیها» برای مدیر کل با capability استاندارد manage_options ثبت میشود. همچنین Capabilityهای TSB هنگام Boot فوراً روی نقشهای مدیریتی اعمال میشوند و Hookهای ذخیره برگزارکننده مستقل از admin_menu ثبت میشوند.Phase 37 / v5.1.0 — Frontend Event & Session Studio
مدیر و برگزارکننده میتوانند از داشبورد فرانتاند رویداد ایجاد/ویرایش کنند. عنوان، محتوا، نمایش، فروش، قوانین، گروه/دسته، رسانه و وضعیت انتشار بر اساس Permission Matrix کنترل میشود.مدیریت سانس پایه نیز به همان صفحه افزوده شده: شروع/پایان، ظرفیت، قیمت، Hold، سالن و حذف سانس. تمام عملیات با Nonce و Ownership رویداد محافظت میشود.برگزارکننده همچنان یک WordPress User با نقش tsb_organizer است، اما برای کار روزمره به wp-admin هدایت نمیشود و از داشبورد فرانتاند استفاده میکند.Phase 38 / v5.2.0 — Event Command Center & Coupon Integration
هر رویداد در Frontend Event Studio اکنون یک Event Command Center دارد که سانس، رزرو، بلیت، Seat Map، کوپن و فروش را در یک نمای یکپارچه نشان میدهد.کوپن اختصاصی را میتوان مستقیماً داخل همان رویداد ساخت و به Event متصل کرد. نوع درصدی/ثابت، مبلغ، تاریخ انقضا، سقف استفاده، سانسهای مجاز، نوع صندلی، VIP و اولین خرید پشتیبانی میشوند.قطع ارتباط Coupon از Event بدون حذف خود Coupon امکانپذیر است. Permissionهای coupons.view و coupons.manage و Event Ownership روی عملیات اعمال میشوند.لینکهای رزرو و گزارش داخل Event Command Center به پنل فرانتاند برمیگردند و event_id همان رویداد را برای فیلتر حفظ میکنند.Phase 39 / v5.3.0 — Resource Center + Frontend Seat Builder
بخش «منابع و سالنساز» به داشبورد فرانتاند اضافه شد و Venue، Group، Event Category و Seat Map را در یک مرکز مدیریت میکند.Venue Manager فرانتاند: ایجاد/ویرایش سالن، ظرفیت، آدرس، مختصات، اطلاعات دسترسی، مدیر سالن و تصویر شاخص. مالکیت سالن برای برگزارکننده ذخیره و Scope میشود.Group/Category Manager: مشاهده منابع موجود و ایجاد/حذف موارد تحت Permissionهای groups.manage و categories.manage. منابع ساختهشده توسط برگزارکننده Owner Meta دارند.Visual Venue Studio / Seat Builder موجود به پنل فرانتاند متصل شد. Event/Session/Venue/Map list برای برگزارکننده Scope شده و AJAX ذخیره/خواندن/حذف نقشه با maps.manage و Event Ownership محافظت میشود.Event Command Center اکنون مستقیماً به Seat Builder، سالنها، گروهها و دستهبندیها لینک دارد.Phase 40 / v5.4.0 — Event Ownership + Operations + Scanner + Notifications
مدیر کل در Frontend Event Studio میتواند برگزارکننده/Owner هر Event را از میان کاربران نقش tsb_organizer انتخاب یا تغییر دهد. برگزارکننده هنگام ساخت Event خودکار Owner خودش میشود و امکان تغییر Owner ندارد.Event Ownership اکنون مرجع دسترسی و همچنین انتساب فروش/کمیسیون/گزارش/تسویه است. Event Command Center نام برگزارکننده را نمایش میدهد.Reservation/Ticket Operations در فرانتاند تکمیلتر شد: جزئیات رزرو، لغو کل رزرو، لغو بلیت منفرد و ارسال مجدد اعلان خرید با Ownership/Permission کنترل میشوند.Scanner فرانتاند فعال شد: کد بلیت، نام گیت، آمار معتبر/ورود و فیلتر Event. برگزارکننده فقط Eventهای خودش را میتواند اسکن کند.Notification Override اختصاصی Event اضافه شد. برای Hold/Purchase/Cancel/Failed/Refund/Partial Refund میتوان SMS/Email مشتری/مدیر را در سطح همان Event روی عمومی/روشن/خاموش تنظیم کرد.Phase 41 / v5.5.0 — Commerce & Finance Integrity
General Admission: پاکسازی دورهای Holdهای منقضی، اعتبارسنجی Hold هنگام بازیابی Cart و Checkout، Partial Refund و کاهش صحیح sold_count اضافه شد.Finance Engine: مدل کمیسیون percent/fixed/combined، Override اختصاصی هر Event، reserve_percent واقعی، تفکیک available/held و آزادسازی خودکار ذخیره مالی اضافه شد.وقتی درخواست تسویه Paid میشود یک Ledger entry منفی و غیرقابلتکرار ثبت میشود؛ بنابراین مبلغ پرداختشده واقعاً از Available Balance کم میشود و فقط Status درخواست تغییر نمیکند.Scanner check-in اتمیکتر شد: برای هر Ticket Code از MySQL named lock و UPDATE شرطی status=valid استفاده میشود تا دو گیت نتوانند یک بلیت را همزمان قبول کنند.QR استاندارد هنوز در backlog است؛ این نسخه روی صحت چرخه فروش/بازپرداخت/مالی و Race Condition اسکن تمرکز دارد.Phase 42 / v5.6.0 — Update Log + Settlement UI + Permission Audit
صفحه جدید TSB → لاگ آپدیتها اضافه شد. هر نسخه/فاز همراه با خلاصه تغییرات نمایش داده میشود و نسخه نصبشده روی همان سایت نیز با زمان نصب بهصورت خودکار در Update History ثبت میشود.Permission Audit واقعی فعال شد: هر ذخیره Permission Matrix شامل دسترسیهای قبل/بعد، Preset، تنظیمات مالی قبل/بعد، کاربر تغییردهنده و زمان تغییر در جدول tsb_permission_audit ثبت میشود.Preset selector و commission model به مدیریت برگزارکنندگان اضافه شد.Finance/Payout UI تکمیلتر شد: مدیر کل درخواستهای تسویه را از پنل فرانت و wp-admin تأیید/رد/Paid میکند؛ برگزارکننده تاریخچه تسویههای خودش را میبیند.v5.6.1 — Organizer Selector Hotfix
در تب «برگزارکننده» Event Studio یک فیلد مستقل «حساب برگزارکننده / مالک سیستمی رویداد» اضافه شد. این فیلد فقط برای مدیر کل قابل تغییر است و با فیلد «نام نمایشی برگزارکننده» متفاوت است.Owner سیستمی مرجع Permission، گزارش، کمیسیون، Finance Ledger و Settlement است.Phase 43 / v5.7.0 — QR, Offline Scanner, Settlement Statements, Risk Finance
QR بلیتها به QR استاندارد Version 2-L در حالت alphanumeric ارتقا یافت. کد canonical بلیت داخل QR قرار میگیرد.Scanner فرانتاند حالا Camera Mode دارد. در مرورگرهای دارای BarcodeDetector و روی HTTPS میتوان QR را مستقیماً با دوربین خواند.برای Event مشخص میتوان Manifest بلیتهای valid/used را دانلود کرد؛ در قطع اینترنت اسکنها محلی ثبت و پس از اتصال با سرور Sync میشوند. Offline Mode مکمل است و سرور در زمان Sync همچنان مرجع نهایی اعتبار است.هر Payout که Paid شود Settlement Statement شمارهدار و Snapshot مالی میسازد و مدیر/برگزارکننده میتوانند نسخه چاپی یا PDF مرورگر بگیرند.Risk & Finance در wp-admin شاخصهای reserve، payout pending، refunds، cancelled events و invalid/duplicate scans را نمایش میدهد.v5.7.1 — Rich Cart & Order Ticket Details
هر TSB Cart Item حالا نام Event را بهعنوان نام بلیت نمایش میدهد و جزئیات رویداد، سانس، تاریخ/ساعت، سالن، ردیف، شماره صندلی و نوع صندلی را نگه میدارد.در خرید چند صندلی، هر صندلی یک Cart/Order Item مستقل است و با شماره «بلیت X از Y» نمایش داده میشود؛ بنابراین هیچکدام از مشخصات سه یا چند بلیت گم نمیشود.در زمان ساخت WooCommerce Order، نام و مشخصات بلیت بهصورت Snapshot روی Order Item ذخیره میشود تا حتی اگر بعداً Event/Session تغییر کرد، اطلاعات زمان خرید در سفارش باقی بماند.Phase 44 / v5.8.0 — Per-Ticket Attendee + My Tickets Export
در Checkout برای هر TSB Ticket دو فیلد اجباری نام و نام خانوادگی صاحب واقعی بلیت نمایش داده میشود. در خرید سه بلیت، سه بلوک مجزا متناسب با صندلی/ورودی عمومی ایجاد میشود.هویت صاحب بلیت روی Order Item و جدول tsb_tickets ذخیره میشود و attendee_name مرجع نمایش در حساب کاربری و گیت است.در WooCommerce My Account → بلیتهای من، هر بلیت کارت مستقل با QR و مشخصات دارد. کاربر میتواند یک بلیت را مستقل یا تمام بلیتهای همان Order را یکجا در سند چندصفحهای باز کند و Print/Save PDF بگیرد.Phase 45 / v5.9.0 — Visual Venue Studio 3.0
Seat Builder اکنون Draft/Published، Zones/Blocks، اشیای سالن، پلان پسزمینه Media Library، Version History/Restore، JSON Import/Export و Template Library دارد.قانون ایمنی: Import JSON و ساخت از Template همیشه نقشه جدید میسازد و ID صندلیها را صفر میکند تا بلیت/Hold نقشه زنده آسیب نبیند. Restore نیز اگر Snapshot صندلی دارای Ticket فعال را حذف کند، توسط سرور مسدود میشود.Autosave نسخه Draft را ذخیره میکند؛ برای فعالسازی نهایی نقشه از دکمه «انتشار نقشه» استفاده کنید.Phase 46 / v5.10.0 — Ownership & Permission Integrity
مالکیت Event/Session/Venue/Seat Map در Endpointهای مدیریتی سختگیرانهتر شده است. Organizer فقط منابع متعلق به خودش را میبیند/ویرایش میکند و Scanner حتی بدون event_id نیز Event واقعی Ticket را بررسی میکند.Seat ID Safety: حذف صندلی یا Map دارای Ticket معتبر/استفادهشده یا Hold فعال مسدود است. این قانون برای جلوگیری از شکستن ارتباط Ticket/Hold با Seat ID است.Seat Mapهای Draft برای کاربران عمومی قابل خرید/نمایش نیستند. وضعیت legacy با نام active همچنان برای سازگاری Published محسوب میشود.v5.10.1 Hotfix — Finance Type Safety
Fatal Error مربوط به number_format/number_format_i18n در Risk & Finance رفع شد. مقدار عددی و واحد «تومان» دیگر قبل از فرمتکردن با هم ترکیب نمیشوند.v5.10.2 Hotfix — Frontend Dashboard Methods
Fatal Error بخش «برگزارکنندگان و دسترسیها» در داشبورد فرانتاند رفع شد. همچنین Overview و Report اختصاصی برگزارکننده که در Router فراخوانی میشدند ولی متدشان وجود نداشت، اضافه شدند.Phase 47 / v5.11.0 — تقویم شمسی یکپارچه
فیلدهای تاریخ Event، Session و فیلترهای گزارش/رزرو اکنون DatePicker شمسی دارند. کاربر تاریخ را شمسی میبیند و وارد میکند، اما TSB قبل از Query/Save آن را به Gregorian تبدیل میکند تا ساختار دیتابیس استاندارد باقی بماند.ورود دستی مانند 1405/06/10 19:30 و اعداد فارسی/انگلیسی همچنان پشتیبانی میشود.Phase 48 / v5.12.0 — Session & Venue Operations
Session Studio اکنون فروش/ظرفیت/باقیمانده و وضعیت مؤثر را محاسبه میکند؛ Clone سانس، حذف ایمن و Ownership سختگیرانه نیز اضافه شده است.اگر Venue در بازه blocked_from/blocked_until مسدود باشد، ایجاد سانس متداخل با آن بازه رد میشود. این تاریخها میتوانند شمسی وارد شوند و Gregorian ذخیره میشوند.Venue Studio فیلدهای پلان تصویری، دسترسپذیری، ظرفیت پارکینگ، تماس اضطراری، راهنمای ورود و دلیل مسدودی را نیز پشتیبانی میکند.Phase 49 / v5.13.0 — زمانبندی پیشرفته سانس
مدیریت سانس اکنون از تولید سری تکرارشونده، Session Template، خروجی iCal، Google Calendar و هشدار کمبود ظرفیت پشتیبانی میکند.سانسهای سری جدید برای ایمنی ابتدا Draft و Sales Paused هستند و پس از بررسی مدیر/برگزارکننده قابل فعالسازیاند.Phase 50 / v5.14.0 — Permission Matrix & Own Data
مدیر کل اکنون میتواند Permission Matrix برگزارکنندگان را هم در wp-admin و هم در داشبورد فرانتاند مدیریت کند. قابلیت Clone دسترسی از یک برگزارکننده به دیگری نیز اضافه شده است.Ownership Health تعداد Event/Session/Venue/Map/Reservation/Ticket متعلق به هر برگزارکننده را نمایش میدهد و فیلتر رزروها نیز برای Own Data Only سختگیرانهتر شده است.Phase 51 / v5.15.0 — Finance & Settlement
Ledger اکنون Gross، Discount، Tax، Gateway Fee، Service Fee، Snapshot مدل کمیسیون و سهم برگزارکننده را مستقل ثبت میکند. Reserve بر مبنای پایان رویداد + روزهای Hold محاسبه میشود.Settlement Statement دوره و ریز Ledger را Snapshot میکند. Manual Adjustment هیچ Ledger قبلی را ویرایش نمیکند و یک Entry جدید همراه Audit Log میسازد.تنظیمات Event-specific Finance اکنون هم در Frontend Event Studio و هم در wp-admin قابل مدیریت است.Phase 52 / v5.16.0 — Scanner & Gate Control
Scanner شامل Multi-Gate stats، attendance percentage، VIP fast-track، reset permission، group scan، CSV attendance export، USB/Bluetooth keyboard scanners و Offline queue است.Reset فقط برای scanner.reset یا مدیر کل مجاز است و در Audit Log ثبت میشود. Export نیز با reports.export و Ownership محدود میشود.Phase 53 / v5.17.0 — Notification Automation
TSB اکنون یادآوری قبل رویداد، هشدار کمبود ظرفیت، گزارش هفتگی برگزارکننده و اعلان وضعیت تسویه را بهصورت Cron-driven اجرا میکند.مدیر کل تنظیمات Global را در wp-admin کنترل میکند و برگزارکننده وضعیت/لاگهای مربوط به Own Data را در Notification Center فرانتاند میبیند. Override هر Event همچنان از Event Studio قابل تنظیم است.Phase 54 / v5.18.0 — WooCommerce Lifecycle
WooLifecycleGuard در پایان Hookهای WooCommerce وضعیت Ticket/Seat/Hold/GA را Reconcile میکند. Cancel/Refund بلیت استفادهشده ظرفیت را آزاد نمیکند تا سابقه فیزیکی ورود خراب نشود.Partial Refund به تفکیک Order Item اعمال میشود و sold_count سانس پس از تغییرات از Ticketهای valid/used بازشماری میشود.Checkout Blocks دارای Store API bridge است؛ UI داینامیک نام مستقل هر Ticket در Classic Checkout کامل است و Blocks برای همین داده باید extension payload مربوط به TSB را ارسال کند.Phase 55 / v5.19.0 — REST API, Webhooks & GDPR
REST API مدیریتی در namespace tsb/v1 اضافه شد و Routeهای Event/Session/Reservation/Ticket/Health فقط با Permission و Ownership معتبر پاسخ میدهند.Webhookها برای Order Paid/Cancelled/Refund و Payout lifecycle بهصورت async با HMAC signature ارسال میشوند. تنظیم Targetها در wp-admin → TSB → API و Webhook انجام میشود.Privacy Exporter/Eraser رسمی WordPress برای رزروها و Ticketها ثبت شده است؛ Eraser داده شخصی را anonymize میکند اما شناسههای مالی لازم را نگه میدارد.Phase 56 / v5.20.0 — 250 Feature Audit & Release Readiness
صفحه TSB → Feature Audit اکنون هر ۲۵۰ قابلیت اولیه را جداگانه با وضعیت implemented / partial / backlog نمایش میدهد و CSV قابل دانلود دارد. این Audit ادعای تست Production نیست؛ وضعیت implemented فقط وجود شواهد پیادهسازی در Build را نشان میدهد.صفحه TSB → سلامت سیستم اکنون Release Readiness و آمادگی زنجیره Event → Session → Venue → Seat → Hold → Cart → Payment → Ticket → Scanner را نمایش میدهد. مرحله Payment عمداً نیازمند تست واقعی Sandbox/Gateway است.Phase 57 / v5.21.0 — Performance, WP-CLI & Hold Self-Test
دستورات CLI: wp tsb status، wp tsb audit، wp tsb cleanup-holds، wp tsb hold-test --seat=123، wp tsb recount-session --id=12 و wp tsb reconcile-order --id=456.Object Cache برای Readهای کمتغییر و Versioned Invalidation اضافه شده است. Hold/Payment/Ticket همچنان DB-authoritative هستند و Cache برای تصمیم تراکنشی استفاده نمیشود.در TSB → کارایی و Self-Test میتوان Named Lock و مسیر Hold/Collision/Validate/Release را تست کرد. این Self-Test جایگزین Load/Concurrency Test چند Process در staging نیست.Phase 58 / v5.22.0 — Event / Session / Venue Advanced Operations
صفحه TSB → عملیات پیشرفته و نمای متناظر در داشبورد فرانتاند برای Recurring Event، انتقال Ticket، Staff Assignment و Venue Version History اضافه شد.شورتکد [tsb_advanced_operations] برای سطح مدیریت ثبت شده است و Permission/Ownership سرور روی عملیات اعمال میشود.Event میتواند Auto Archive و تاریخ انقضای CTA خرید داشته باشد. Venueها Snapshot نسخهای و JSON Export دارند و Sessionها Audit Log و Staff مستقل دارند.Phase 59 / v5.23.0 — Packages / Reports / Venue Geo / Event Discovery
در عملیات پیشرفته، Multi-session Package و گزارش Session/CSV اضافه شده است. مدل Package مدیریتی آماده است؛ Checkout پکیجی مستقل هنوز باید در Live Woo integration نهایی شود.شورتکد [tsb_venue_directory] فهرست سالن با فیلتر شهر/استان و ورودی مختصات برای مرتبسازی فاصله را ارائه میدهد. [tsb_related_events] نیز Eventهای مرتبط را بهصورت Dynamic نمایش میدهد.Venue JSON Export اکنون Import امن Draft دارد. Seasonal blocking چندبازهای در Domain Service اضافه شده و Session validation آن را میشناسد.Phase 60 / v5.24.0 — Package Checkout & Advanced Analytics
شورتکد [tsb_session_packages event_id="123"] Packageهای فعال یک Event را نمایش میدهد. خرید یکپارچه در Eventهای General/Mixed با Hold مستقل برای هر Session انجام میشود؛ هر Session یک Ticket و Attendee مستقل دارد.برای Eventهای کاملاً صندلیدار، Package خودکار عمداً خرید را انجام نمیدهد چون باید Seat مستقل برای هر Session انتخاب شود؛ این مسیر نیازمند UX انتخاب چند نقشه است.در TSB → گزارشهای پیشرفته Forecast، Peak Hours، مقایسه Eventها، توزیع Seat Type، Seat Selection Analytics و تفکیک Tax/Gateway/Service/Platform Fee وجود دارد.Phase 61 / v5.25.0 — Accessible Seat UX & Operations Center
Seat Map فرانتاند اکنون Search، Keyboard Arrow navigation، ARIA state، Focus indicator، Lazy rendering برای نقشههای بزرگ و Viewer count کوتاهمدت دارد.در TSB → عملیات صندلی و تیم میتوان Seat را به available/blocked/maintenance تغییر داد. آزادسازی Seat دارای Ticket معتبر/used یا Hold فعال مسدود است و تمام تغییرات Audit میشوند.یادداشت داخلی تیم برای Event/Session/Ticket اضافه شده است. نمای متناظر در داشبورد فرانتاند نیز با شورتکد [tsb_operations_center] وجود دارد.Phase 62 / v5.26.0 — Commerce Reliability & Formal Invoice
در TSB → تجارت و فاکتور مهلت لغو خودکار سفارش پرداختنشده و مشخصات فروشنده برای فاکتور قابل تنظیم است. لینک فاکتور رسمی در جزئیات سفارش TSB نمایش داده میشود.TSB تبدیل ارز انجام نمیدهد؛ Currency نهایی WooCommerce مرجع است و Currency/Unit Price هر Ticket Snapshot میشود. بنابراین سازگاری با افزونههای Multi-currency بهتر شده بدون اینکه TSB نرخ تبدیل موازی بسازد.Webhookها event nameهای dotted را درست نگه میدارند، تا سه بار Retry میشوند و مقصدهای localhost/private بهصورت پیشفرض مسدودند.Phase 63 / v5.27.0 — Season Pass / Bundles / Blocks Bridge
در TSB → Pass و Bundle میتوان چند Session از چند Event را در یک Bundle یا Season Pass قرار داد. خرید اتمیک فعلاً برای Sessionهای General/Mixed است و هر اجرا Ticket مستقل میسازد.شورتکد [tsb_commerce_bundles]، فیلتر type="season_pass" و انتخاب یک id را پشتیبانی میکند.Checkout Blocks یک Store API extension namespace با نام tsb دارد و payload شرکتکنندگان را میپذیرد؛ UI اختصاصی React داخل Checkout Block هنوز بهعنوان Integration جداگانه باقی مانده و افزونه در صورت payload ناقص آن را Log میکند.Scanner در نبود BarcodeDetector، کاربر را به fallback اسکنر USB/Bluetooth، Paste یا ورود دستی هدایت میکند و keyboard-wedge سریع را تشخیص میدهد.Hotfix v5.27.1 — Event Studio
Session Manager اکنون داخل تب سانسها در همان صفحه ویرایش Event قرار دارد. ساخت/ویرایش/کپی/حذف Session بدون Meta Box جداگانه انجام میشود.Tabs استودیوی Event دارای JavaScript fallback مستقل هستند؛ بنابراین خطای یک اسکریپت جانبی نباید باعث از کار افتادن جابهجایی تبها شود.Release Candidate Preflight — v5.28.0
در System Health یک بررسی غیرمخرب برای جداول اصلی، WooCommerce، Cron، Holdهای منقضی، Ticket/Seat consistency و Used Ticket safety اضافه شده است. این گزارش جایگزین تست واقعی پرداخت و همزمانی نیست.v5.29.0 — Integration Chain
از مسیر TSB → تست یکپارچگی میتوان زنجیره Event تا Scanner، ناسازگاری Ticket/Seat و sold_count را بررسی کرد. ابزار Recount فقط شمارنده فروش سانس را از Ticketهای valid/used بازسازی میکند.v5.31.0 — Payment / Ticket / Scanner
[tsb_sessions event_id="123"]
[tsb_venue id="123"]
[tsb_seat_map_preview map_id="1"]
[tsb_seat_map map_id="1" event_id="10" session_id="20" product_id="123" hold_minutes="5"]
[tsb_my_tickets]
[tsb_event_buy_button event_id="123"]
[tsb_events]
[tsb_event_card id="123"]
[tsb_event_detail id="123"]
[tsb_sessions event_id="123" style="cards"]
[tsb_events columns="3" limit="24" show_filters="yes"]