=== Seating Charts ===
Contributors: Tickera, freemius
Donate link: https://tickera.com
Tags: seating charts, tickera, woocommerce
Requires at least: 4.3
Tested up to: 6.8.1

Create seating charts for your event

== Description ==

Create seating charts for your event

== Installation ==

1. Upload this add-on zip to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Install and activate Tickera plugin
4. Install and activate WooCommerce plugin (if used with WooCommerce)
5. Install and activate Bridge for WooCommerce add-on (if used with WooCommerce)
6. Create an Event (http://yoursite.com/wp-admin/post-new.php?post_type=tc_events)
7. Create a Product (wp-admin/post-new.php?post_type=product) - if you want to use the add-on with WooCommerce or create a Ticke Type if you want to use the add-on with standalone version of Tickera
5. Create a new Seat Chart (http://yoursite.com/wp-admin/post-new.php?post_type=tc_seat_charts)
7. Sell your event tickets and enjoy!

== Changelog ==

= 1.1.9 24/06/2025 =
- Remove any extra slashes from seat labels in the email content.
- Adjustment on seat selection handler to prevent selection of reserved, unavailable and blocked seats.
- Cleanup expired error notices in Woocommerce cart/checkout pages.
- New background image option for the seating map.
- A Compliance to Woocommerce v9.9.3, enhancing cart and checkout error handling for seat items.
- Woocommerce High-Performance Order Storage Integration.

= 1.1.8 08/06/2025 =
- Stripslashes on seat labels.
- Keyboard scrolling is not functioning when the seating map shortcode is rendered on the page. [Fixed]

= 1.1.7 25/03/2025 =
- Bridge for Woocommerce v1.6.4 Compliance. Addressing the Missing tickets on express checkouts.
- Translation for "Seating Charts" menu in Tickera > Settings > Navigation Sidebar.

= 1.1.6 06/03/2025 =
- Ticket seat assignment handler for express payments.

= 1.1.5 12/12/2024 =
- Ability to skip cart_item validation loop via "tc_skip_cart_item_loop" filter hook. This is to help establish compatibility across other plugins that recreates the default Woocommerce cart_item object.
- New "tc_seat_chart_after_tooltips" action hook to insert custom tooltip. Argument: $id

= 1.1.4 06/11/2024 =
- Apply min and max tickets per order in Table element.
- Default letter "A" in multiple seat label assignment no longer working. [Fixed]
- "Bring to front" not working on "Text Element". [Fixed]

= 1.1.3 15/10/2024 =
- Unable to view admin order details due to unknown format specifier error. [Fixed]
- Added additional language strings 

= 1.1.2 01/09/2024 =
- Additional "Standee qty" translation string.
- Maximum Quantity for WooCommerce Shops by PT Woo Plugins (by Webdados) compatibility.

= 1.1.1 06/09/2024 =
- Standee element stuck on "Loading options, please wait...". [Fixed]

= 1.1.0 05/09/2024 =
- <style> being printed in frontend. [Fixed]

= 0.89 03/09/2024 =
- Tickera 3.5.3.6 compatibility.
- Broken persistent seating data causing critical error in cart and checkout pages. [Fixed]
- Load plugin dependencies first.
- Seating group's toolbar always stays on top. Toolbar is expected to appear only when the seating group container is being hover. [Fixed]

= 0.88 =
- Remove '_seatings_persistent_cart' user meta on empty cart.
- Remove session data on empty cart.
- Persistent "Seat(s) expired, please reload the page." whenever a cart contains standee.
- Ability to bring to front seating group. New "bring to front" icon added in Tickera > Seating Charts.
- Load plugin dependencies first.
- Clearing out Tickera v3.5.3.0 deprecated functions.
- Broken seat label due to multiple dashes. [Fixed]

= 0.87 =
- Deprecated "woo_block_validation" function. Replaced with "woocommerce_blocks_validation".
- Deprecated "woo_validate_cart_seats" function. Replaced with "woocommerce_cart_seats_validation".
- Replaced "woocommerce_after_checkout_validation" and "woocommerce_checkout_order_processed" hooks integration with "woocommerce_before_checkout_process" to handle checkout validation.
- Additional validation handler right after clicking the checkout "Place Order" button.
- Validation for required seats fields in the checkout page. Addresses, missing seat labels due to caching functionality.

= 0.86 =
- Error handler for Woocommerce Checkout Block.
- Missing seats assignments in Woocommerce Checkout Block. [Fixed]

= 0.85 =
- Centered "Add to Cart/Remove seat" modal and mobile responsiveness.
- Unable to render a complete seat label due to dash (-) character. Strings after dash is being stripped off. [Fixed]

= 0.84 =
- Unable to edit tables and seating group if they are initially created without seat. [Fixed]
- Special characters in the seat label unexpected unicode conversion. [Fixed]
- Additional "tc_seating_charts_html" filter hook before rendering seating map elements.

= 0.83 =
* Plugins/themes conflict with Constant X already defined. [Fixed]
* Append ID label on the Assign Ticket Type select field. Tickera > Seating Charts

= 0.82 =
* Incorrect center point if a seating map contains rotated elements. [Fixed]

= 0.81 =
* Move checkout fields from being rendered via "tc_cart_before_attendee_info_wrap" filter hook to "tc_owner_info_fields" filter hook.
* Woocommerce blocks integration. Required: Bridge for Woocommerce version 1.4.5

= 0.80 =
* Missing Seat Label in Woocommerce Checkout page order review section. [Fixed]
* Duplicated seat assignments due to simultaneous order creation. [Fixed]
* Include Seating Chart Information onto the CSV Export add-on columns. Included Fields: chart_id, chart_title, seat_id, seat_label
* Initialize auto center regardless the zoom function is enabled or disabled.

= 0.79 =
* Intermittently unable to render Seating Chart "Pick your seat(s)" button. [Fixed]
* Unable to render Seating Chart "Pick your seats(s)" button on network activated. [Fixed]
* Duplicating seating map returns empty on initial load. [Fixed]
* Duplicate seat label in Woocommerce cart items. Issue occured on Woocommerce v7.8.0. [Fixed]

= 0.78 =
* Update scripts versions to avoid browser caching issue after plugin update.
* Additional "In other's cart seat expiration" in Tickera > Settings > Seating Charts.
* Broken seating map's modal styling. [Fixed]
* Additional "tc_sc_after_firebase_settings" and "tc_sc_after_general_settings" action hooks. File: seating-charts/includes/admin-pages/seat_charts_settings.php
* Update Tickera gutenberg blocks list.

= 0.77 =
* Quantity field remains visible in a non-standee seat modal (only occurs in Woocommerce v7.4.0). [Fixed]
* Ability to drag the seating map regardless an element is being touched or not.
* Disable popup modal while dragging seating map.
* Additional 'tc_seat_chart_tooltips' filter to allow developers to modify the Seating map bottom control tooltip.
* Seating map's bottom control bar fixed in mobile screen.
* Seat colors reverting back to default due to the event associated to the seating map is no longer exists. Additional patch that will handle this scenario to ensure seating map is associated to an event.

= 0.76 =
* Compatibility issue with Themify Ultra v7.0.1. Requires Tickera v3.5.1.0 [Fixed]
* Ability to disable auto centering of maps in the frontend. Tickera > Settings > Seating Charts.
* Moving firebase scripts in the plugin directory.
* Disable quantity selector in cart/checkout pages on seat type items.
* Limited seat labels under Woocommerce Order Details table/email. [Fixed]
* Mark preselected attributes value on edit elements in admin seating mapping page.
* Ability to drag "add to cart" and "remove from cart" modal.
* Fixed licensing option issue
* Ability to update/remove quantity in the standee element. In progress testings...

= 0.75 12/12/2022 =
* Additional "Used for Seatings" metabox in Ticket Types admin configuration page. If enabled, additional validation will be added at cart/checkout page. This is to ensure tickets will require seating chart metas during checkout process.
* Additional filter hook "tc_seat_map_legend_order" to modify the order of the seating map legend.
* Unable to sort variable ticket types in seating map legend. [Fixed]
* Misalignment of rotated text element in frontend. [Fixed]
* Comply with the latest Woocommerce error handling in cart/checkout page.
* Removing selected seat (type car or chair) does not revert its color. [Fixed]

= 0.74 11/10/2022 =
* Seating map keeps on repositioning in the center of the screen every time selecting a variable seats. [Fixed]
* Seating map centering issue across different devices and screen sizes. [Fixed]
* Zoom in and out base on the seating map center point.
* Incorrect position if using arrow keys to move the seating map in the frontend. Issue only occurs if seating map is zoomed out. [Fixed]
* Unassigned seats caused by a dash(-) in the seat label. [Fixed]

= 0.73 17/08/2022 =
* Fixed issue with seating chart centering across different devices and screen sizes.
* Rotated tables' container overlaps near seats causing the seats unclickable. [Fixed]
* Using seating chart shortcode: Make sure attribute ID is integer. There was an instance where the ID is being copied and pasted it includes html elements which causes critical errors in both of the backend and frontend. [Fixed]
* Additional "tc_seat_map_legend_ascending_order" filter to modify seating map legend sort order.
* Apply seating map css/styles in Elementor templates.
* Live Checked-in Seat Color on deleted checkin entries no longer working. [Fixed]

= 0.72 15/06/2022 =
* Backward compatibility with Wordpress version 4.x. [Fixed]
* Unable to retain seats' colors after cancelling the "Change" event action. [Fixed]
* Missing order tickets'/attendees' seats assignment. [Fixed]
* Unable to assign ticket seat colors in a newly created seating map. [Fixed]
* Unable to select ticket types in the seating map page (admin > tickera > seating chart) due to unclickable select field. [Fixed]
* Misalignment of standee in the frontend. [Fixed]
* Changing the event doesn't resets the seat, table and standee colors. [Fixed]

= 0.71 21/09/2021 =
* Remove chart's firebase entries when cart is emptied.
* When a group of seats is rotated and placed right after another group of seats, some of the seats becomes unclickable. [Fixed]
* Misalignment of Text and Icons Elements. [Fixed]

= 0.70 18/08/2021 =
* Seating chart not working in the frontend when shortcode is added via Gutenberg. [Fixed]

= 0.69 12/08/2021 =
* Ability to block seats and to choose whether to display it as blocked or reserved.
* Unable to load seating chart in the frontend if one of the tickets doesn't have a price. [Fixed]
* Tables in the frontend is quite not identical from the admin seats mapping page. [Fixed]
* When multiple tables are place near to each other, it caused some seats to be unclickable. [Fixed]
* Cookie & cache issue resulting the checkout to return an error notice stating an available seat to be "booked already". [Fixed]
* Additional action hook "tc_sc_after_expired_seat_removal" just after an expired seat is removed from the firebase. Argument(s): seat_id, chart_id
* Additional filter hook "tc_sc_seat_expiration_time_minutes" to modify the seating chart's seats expiration. Only works when firebase is activated. Argument(s): minutes
* There are some instance that seating chart's scripts dependencies are printed late in the DOM. This cause some of the seating chart's methods to return undefined error. [Fixed]
* Unable to save Product's "Seat Color" when "WPC Product Bundles for WooCommerce" plugin is active. [Fixed]

= 0.68 =
* Ability to manually update reserved seats to available. Updating the order status to "Cancelled" will mark the seat available.
* Real time synchronization of "reserved" seats with firebase. When an order status is updated to cancelled, seats will be automatically marked as available.
* Woocommerce mini cart is not updating when selecting a variable type seats. [Fixed]

= 0.67 =
* Update Firebase SDK and CDN scripts
* Firebase fatal error. Unable to load firebase when database url is pointing to EU location. [Fixed]
* Synchronization of "in cart" and "in others cart" seats with firebase. When a seat expires, it will mark the seats available in other users.

= 0.66 =
* Bug fixed: Seating chart's alignments from the admin page is different from the frontend view. Occurs when using 'Text Element'.

= 0.65 =
* If a product "Used for Seatings" attribute is activated, hide variation form in Single Product Page.
* Bug fixed: Broken chart's modal's css when seating chart's shortcode is loaded via classic editor or gutenberg.
* Bug fixed: Seating Chart Edit Page - Unable to identify existing seat's ticket due to outdated Ticket Type Field.
* Bug fixed: Reserved seats from firebase not reflecting when seating chart is loaded.

= 0.64 =
* Bug fixed: Saving huge chart intermittently returning 404 post.php. Only appears in some server configuration
* Bug fixed: CSS Inset Property generated by some browsers/version is causing to break the chart layout
* Bug fixed: Firebase seats expiration intermittently unassigned other in cart seats

= 0.63 =
* Seating Chart Firebase not expiring. Resulting to "in other cart" to remain indefinitely. [Fixed]

= 0.62 =
* Compatibility issue with Woocommerce cart widgets [Fixed]
* Tooltip not displaying on hovered chart seat. [Fixed]
* Unintended new lines when creating multiple rows seats, [Fixed]
* Added more type of icons

= 0.61 =
* Script error when validating a seat. [Fixed]
* Extra validation for variation items

= 0.60 =
* WordPress 5.5 compatibility

= 0.59 =
* Bug fixed on Serve resources from a consistent URL
* Better license update / license check handling
* Unclickable 'add to cart' button when there's an ongoing add to cart backend process
* Compatible with Tickera Event Limit Level

= 0.58 =
* Added validation based on Woo Product Attributes
* Bug fixed on Seating Chart Legend. When price is zero, it doesnt display product.
* Bug fixed on Seating Chart Add Seat modal. When price is zero, it displays undefined values

= 0.57 =
* Change order price in seating chart addon
* Fixed notice caused by disabling zoom option

= 0.56 =
* Fixed seat selection issue with membermouse plugin
* Fixed color issue with standing area
* Added optional zoom option

= 0.55 =
* Fixed notices on the WooCommerce product single pages

= 0.54 =
* Fixed notices on the WooCommerce cart page
* Fixed conflict with the MailOptin - Lite plugin

= 0.53 =
* Css fix for tables without label

= 0.52 =
* Fixed critical issue with Firebase sessions
* Added feature: Live checkins in the admin (with Firebase integration)

= 0.51 =
* Fixed deprecated function usage (get_product -> wc_get_product) notices when WooCommerce is active

= 0.50 =
* Fixed issue with echoing instead of returning the product name
* Added hooks for developers
* Fixed issue with changing body classes function
* Functionality improvements

= 0.49 =
* Fixed issue with seats not being assigned sometimes

= 0.49 =
* Fixed issue with Multisite site wide activation
* Added improved plugin update option
* Added compatibility with Tickera 3.4
* Add to Cart buttons are now removed on the WooCommerce product single page in case that product is used for seatings
* Disabling "Go To Cart" button while the seat is added to the cart
* Removed cursor change for everything

= 0.47 =
* IMPORTANT NEW FEATURE: Added new checkbox "Used for Seatings" on the WooCommerce product page (in the admin) which prevents selling of a product/ticket if it's not added to the cart via a seating chart (update of the Brigde for WooCommerce add-on is also recommended)

= 0.46 =
* Fixed issue with quantity field showing
* Added hooks for developers

= 0.45 =
* Added option for adding multiple qty for standing areas
* Seating Chart automatically updates for smaller resolutions

= 0.44 =
* UX Change: Seat labels stay after event change

= 0.43 =
* Add-on DOM change

= 0.42 =
* Legend automatically hiding on the mobile phones

= 0.41 =
* Added additional seat check on last step

= 0.40 =
* Fixed issue with being able to add same seat variation to the cart
* Updated language file

= 0.39 =
* Improvements with mobile controls
* Fixed issue with being able to add same seat to the cart

= 0.38 =
* Fixed issue with being able to select bought seats
* Removed Firebase privacy policy

= 0.37 =
* Fixed issue with removing from cart (WooCommerce)
* Fixed issue with AJAX error

= 0.36 =
* Fixed issue with WooCommerce Germanized

= 0.35 =
* Added Firebase privacy policy statement
* Fixed issue with variation being able to be added to cart multiple times by fast clicking
* Fixed issue with being able to select blocked seats

= 0.34 =
* Added option for deleting plugin's data to the Delete Info tab in admin settings (3.2.8.5 version of Tickera plugin is required)

= 0.33 =
* Improved user experience on mobile devices

= 0.32 =
* Removed hover for unavailable seats on the front-end

= 0.31 =
* Added new status "Unavailable" for seats which will be shown if ticket selling dates are used
* Fixed issue with removing seatings cookie data in WooCommerce before resuming order (when a user goes back in the browser from order details page and tries to continue with order)

= 0.30 =
* Fixed issue with deleting chart after trashing a post

= 0.29 =
* Fixed issue with table seat selection

= 0.28 =
* Added additional strings for translation
* Fixed compatibility issues with WordPress 4.9 (table colors)
* Added check for an empty ticket type when assigning a ticket type to a seating group, table or standing area
* Fixed issue with removing items from WooCommerce cart when Firebase integration is active

= 0.27 =
* Added hooks for developers
* Fixed issue with double tap on mobiles

= 0.26 =
* Fixed issue with seating chart centering across different devices and screen sizes
* Resolved issue with minumum tickets in Firefox browser

= 0.25 =
* Added possibility of removing seats from the cart table
* Fixed the issue with the dash in the seat label name
* Added link to the Seating Charts add-on documentation
* Firebase check added. You will not be able to save if all fields are not filled
* Fixed issue with minimum and maximum tickets per order
* Fixed issue with removing variable WooCommerce products from cart

= 0.24 =
* Fixed panning on touch devices
* Fixed various issue with multiple seatings shortcodes on a page
* Added more touch functionality with CSS

= 0.23 =
* Save seats cart for users permanently in WooCommerce

= 0.22 =
* Changed setting labels to required - to avoid errors caused by users
* Added functionality to force unique seat labels

= 0.21 =
* Changed zoom functionality on the front-end (show same zoom level set on the admin side)

= 0.2 =
* Fix for quantity selector located on the cart page for standing area

= 0.1 =
* First beta release
