diff --git a/src/mt-ajax.php b/src/mt-ajax.php
index 7470185..ef58adc 100644
--- a/src/mt-ajax.php
+++ b/src/mt-ajax.php
@@ -81,6 +81,7 @@ function mt_ajax_handler() {
$data = map_deep( $data, 'sanitize_text_field' );
// reformat request data to multidimensional array.
$cart = mt_get_cart();
+
foreach ( $data as $k => $d ) {
if ( 'mt_tickets' === $k ) {
foreach ( $d as $n => $value ) {
@@ -99,6 +100,17 @@ function mt_ajax_handler() {
// generate and submit cart data.
$save = array();
if ( isset( $submit['mt_tickets'] ) ) {
+ $modified = false;
+ foreach ( $submit['mt_tickets'] as $type => $count ) {
+ $available = mt_check_inventory( $submit['mt_event_id'], $type );
+ $available_count = ( $available ) ? $available['available'] : 0;
+ $append = '';
+ if ( $count > $available_count ) {
+ // Set to max available if requested greater than available.
+ $submit['mt_tickets'][ $type ] = $available_count;
+ $modified = true;
+ }
+ }
$save = array(
$submit['mt_event_id'] => $submit['mt_tickets'],
'mt_event_id' => $submit['mt_event_id'],
@@ -117,14 +129,15 @@ function mt_ajax_handler() {
*
* @return {array}
*/
- $saved = apply_filters( 'mt_add_to_cart_ajax_field_handler', $saved, $submit );
- $url = mt_get_cart_url();
+ $saved = apply_filters( 'mt_add_to_cart_ajax_field_handler', $saved, $submit );
+ $url = mt_get_cart_url();
+ $append = ( $modified ) ? ' ' . __( 'Your order was modified due to a change in ticket availability.', 'my-tickets' ) : '';
if ( 1 === (int) $saved['success'] ) {
// Translators: Cart URL.
- $response = apply_filters( 'mt_ajax_updated_success', sprintf( __( "Your cart is updated. Checkout", 'my-tickets' ), $url ) );
+ $response = apply_filters( 'mt_ajax_updated_success', sprintf( __( "Your cart is updated. Checkout", 'my-tickets' ), $url ) ) . $append;
} else {
// Translators: Cart URL.
- $response = apply_filters( 'mt_ajax_updated_unchanged', sprintf( __( "Cart not changed. Checkout", 'my-tickets' ), $url ) );
+ $response = apply_filters( 'mt_ajax_updated_unchanged', sprintf( __( "Cart not changed. Checkout", 'my-tickets' ), $url ) ) . $append;
}
$return = array(
'response' => $response,
@@ -132,6 +145,7 @@ function mt_ajax_handler() {
'count' => mt_count_cart( $saved['cart'] ),
'total' => mt_total_cart( $saved['cart'] ),
'event_id' => $submit['mt_event_id'],
+ 'data' => $count,
);
wp_send_json( $return );
}