Changeset 1011855
- Timestamp:
- 10/22/2014 01:38:25 AM (11 years ago)
- Location:
- opentickets-community-edition/trunk
- Files:
-
- 6 edited
-
assets/js/utils/tools.js (modified) (2 diffs)
-
inc/core/zoner.class.php (modified) (2 diffs)
-
inc/venues/event-area/post-type.class.php (modified) (6 diffs)
-
inc/venues/event-area/pricing.class.php (modified) (2 diffs)
-
launcher.php (modified) (2 diffs)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
opentickets-community-edition/trunk/assets/js/utils/tools.js
r1008758 r1011855 171 171 172 172 (function($) { 173 /* 173 174 $.fn.qsBlock = function(settings) { 174 175 return this.each(function() { … … 201 202 202 203 $.fn.qsUnblock = function(element) { return this.each(function() { $(this).trigger('unblock'); }); }; 204 */ 205 $.fn.qsBlock = function(settings) { 206 return this.each(function() { 207 var element = $(this), position = element.css( 'position' ), 208 sets = $.extend(true, { msg:'<h1>Loading...</h1>', css:{ backgroundColor:'#000000', opacity:0.5 }, msgcss:{ color:'#ffffff' } }, settings), 209 bd = $('<div class="block-backdrop"></div>').appendTo( element ), msg = $('<div class="block-msg"></div>').appendTo( element ), 210 dims = { width:element.outerWidth(), height:element.outerHeight() }; 211 if ( position == 'static' ) 212 element.css( { position:'relative' } ); 213 $(sets.msg).css({ color:'inherit' }).appendTo(msg); 214 var mhei = msg.height(); 215 bd.css($.extend({ 216 position: 'absolute', 217 width: 'auto', 218 height: 'auto', 219 top: 0, bottom:0, 220 left: 0, right:0 221 }, sets.css)); 222 msg.css($.extend({ 223 textAlign: 'center', 224 position: 'absolute', 225 width: dims.width, 226 top: '50%', 227 left: 0, 228 marginTop: -mhei 229 }, sets.msgcss)); 230 msg.find('h1').css({ fontSize: dims.height > 30 ? 28 : '100%' }); 231 232 var ublock = function() { element.css( { position:position } ); bd.remove(); msg.remove(); element.off('unblock', ublock); } 233 element.on('unblock', ublock); 234 }); 235 }; 236 237 $.fn.qsUnblock = function(element) { return this.each(function() { $(this).trigger('unblock'); }); }; 203 238 })(jQuery); 204 239 -
opentickets-community-edition/trunk/inc/core/zoner.class.php
r1004826 r1011855 305 305 } else { 306 306 // get the available occupancy of the event 307 $available = apply_filters('qsot-get-event-available-tickets', 0, $event , $ticket_type_id);307 $available = apply_filters('qsot-get-event-available-tickets', 0, $event); 308 308 // determine how many this person already has reserved 309 $owns = apply_filters('qsot-zoner-owns', 0, $event, $ticket_type_id, self::$o->{'z.states.r'}, $customer_id); 309 $owns = array_sum( array_values( apply_filters('qsot-zoner-owns', 0, $event, 0, self::$o->{'z.states.r'}, $customer_id) ) ); 310 //$owns_tt = apply_filters('qsot-zoner-owns', 0, $event, $ticket_type_id, self::$o->{'z.states.r'}, $customer_id); 310 311 311 312 // if this user already owns some seats for this event, then 312 313 if ($owns) { 313 314 // if they are requesting more than is available, then just fail 314 if ($count > ($available + $owns)) return false;315 if ($count > ($available + $owns)) return new WP_Error( 'There are not ' . $count . ' tickets available to reserve.' ); 315 316 // otherwise update the reservation count for this user for this event 316 317 $res = $wpdb->update( … … 323 324 } else { 324 325 // if the user is requesting more than what is currently available, then just fail 325 if ($count > $available) return false;326 if ($count > $available) return new WP_Error( 'There are not ' . $count . ' tickets available to reserve.' ); 326 327 // oterhwise, insert the reservations for these seats now 327 328 $res = $wpdb->insert( -
opentickets-community-edition/trunk/inc/venues/event-area/post-type.class.php
r1008903 r1011855 357 357 if ($qty > 0 && is_object($event) && is_object($event->meta) && is_object($event->meta->_event_area_obj) && is_object($event->meta->_event_area_obj->ticket)) { 358 358 $res = apply_filters('qsot-zoner-reserve-current-user', false, $event, $event->meta->_event_area_obj->ticket->id, $qty); 359 if ($res ) {359 if ($res && ! is_wp_error( $res ) ) { 360 360 $resp['s'] = true; 361 361 $resp['m'] = array('Updated your reservations successfully.'); … … 366 366 $resp['data']['available_more'] = $resp['data']['available'] - $resp['data']['owns']; 367 367 WC()->cart->maybe_set_cart_cookies(); 368 } else if ( is_wp_error( $res ) ) { 369 $resp['e'] = array_merge( $res['e'], $res->get_error_messages() ); 368 370 } else { 369 371 $resp['e'][] = 'Could not update your reservations.'; … … 388 390 if (is_object($event) && is_object($event->meta) && is_object($event->meta->_event_area_obj) && is_object($event->meta->_event_area_obj->ticket)) { 389 391 $customer_id = apply_filters('qsot-zoner-current-user', md5(isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : time())); 390 $where = array( 391 'customer_id' => $customer_id, 392 'event_id' => $event->ID, 393 'ticket_type_id' => $event->meta->_event_area_obj->ticket->id, 394 'state' => self::$o->{'z.states.r'}, 395 ); 396 if ($data['quantity'] <= 0) { 397 $set = array( 398 'qty' => 0, 399 '_delete' => true, 392 393 // get the available occupancy of the event 394 $available = apply_filters('qsot-get-event-available-tickets', 0, $event); 395 // determine how many this person already has reserved 396 $owns = apply_filters( 'qsot-zoner-owns', 0, $event, 0, self::$o->{'z.states.r'}, $customer_id ); 397 $owns_all = array_sum( array_values( $owns ) ); 398 399 $quantity = $data['quantity']; 400 401 if ( $quantity <= $available ) { 402 $where = array( 403 'customer_id' => $customer_id, 404 'event_id' => $event->ID, 405 'ticket_type_id' => $event->meta->_event_area_obj->ticket->id, 406 'state' => self::$o->{'z.states.r'}, 400 407 ); 401 } else { 402 $set = array( 403 'qty' => $data['quantity'], 404 ); 405 } 406 $res = apply_filters('qsot-zoner-update-reservation', false, $where, $set); 407 $owns = apply_filters('qsot-zoner-owns-current-user', 0, $event, $event->meta->_event_area_obj->ticket->id, self::$o->{'z.states.r'}); 408 409 if ($data['quantity'] <= 0) { 410 if (!$owns && $res) { 411 $resp['s'] = true; 412 $resp['m'] = array('Updated your reservations successfully.'); 413 $resp['data'] = array( 414 'owns' => $owns, 415 'available' => $event->meta->available, 408 if ($data['quantity'] <= 0) { 409 $set = array( 410 'qty' => 0, 411 '_delete' => true, 416 412 ); 417 $resp['data']['available_more'] = $resp['data']['available'] - $resp['data']['owns'];418 413 } else { 419 if ($owns) $resp['e'][] = 'A problem occurred when trying to remove your reservations.'; 420 else $resp['e'][] = 'Could not update your reservations.'; 414 $set = array( 415 'qty' => $data['quantity'], 416 ); 417 } 418 $res = apply_filters('qsot-zoner-update-reservation', false, $where, $set); 419 $owns = apply_filters('qsot-zoner-owns-current-user', 0, $event, $event->meta->_event_area_obj->ticket->id, self::$o->{'z.states.r'}); 420 421 if ($data['quantity'] <= 0) { 422 if (!$owns && $res) { 423 $resp['s'] = true; 424 $resp['m'] = array('Updated your reservations successfully.'); 425 $resp['data'] = array( 426 'owns' => $owns, 427 'available' => $event->meta->available, 428 ); 429 $resp['data']['available_more'] = $resp['data']['available'] - $resp['data']['owns']; 430 } else { 431 if ($owns) $resp['e'][] = 'A problem occurred when trying to remove your reservations.'; 432 else $resp['e'][] = 'Could not update your reservations.'; 433 } 434 } else { 435 if (!$res || !$owns) { 436 if ($owns) $resp['e'][] = 'A problem occurred when trying to update your reservations.'; 437 else $resp['e'][] = 'Could not update your reservations.'; 438 } else { 439 $resp['s'] = true; 440 $resp['m'] = array('Updated your reservations successfully.'); 441 $resp['data'] = array( 442 'owns' => $owns, 443 'available' => $event->meta->available, 444 ); 445 $resp['data']['available_more'] = $resp['data']['available'] - $resp['data']['owns']; 446 } 421 447 } 422 448 } else { 423 if (!$res || !$owns) { 424 if ($owns) $resp['e'][] = 'A problem occurred when trying to update your reservations.'; 425 else $resp['e'][] = 'Could not update your reservations.'; 426 } else { 427 $resp['s'] = true; 428 $resp['m'] = array('Updated your reservations successfully.'); 429 $resp['data'] = array( 430 'owns' => $owns, 431 'available' => $event->meta->available, 432 ); 433 $resp['data']['available_more'] = $resp['data']['available'] - $resp['data']['owns']; 434 } 449 $resp['e'][] = __( sprintf( 450 'There are not enough available tickets to increase the quantity of %s to %d. There are only %d available.', 451 $event->meta->_event_area_obj->ticket->get_title(), 452 $quantity, 453 $available 454 ), 'qsot' ); 435 455 } 436 456 } else { … … 717 737 if (empty($customer_id)) $customer_id = md5($order->id); 718 738 $res = apply_filters('qsot-zoner-reserve', false, $event, $event->meta->_event_area_obj->ticket->id, $qty, $customer_id, $oid); 719 if ( $res) {739 if ( $res && ! is_wp_error( $res ) ) { 720 740 do_action('qsot-order-admin-added-tickets', $order, $event, $event->meta->_event_area_obj->ticket->id, $qty); 721 741 $resp['s'] = true; … … 1114 1134 if ($requested_count > 0) { 1115 1135 $success = apply_filters('qsot-zoner-reserve-current-user', false, $event, $ticket_type_id, $requested_count); 1116 if ( !$success) {1136 if ( ! $success || is_wp_error( $success ) ) { 1117 1137 $available = apply_filters('qsot-get-event-available-tickets', 0, $event, $ticket_type_id); 1118 1138 $ticket = get_product($ticket_type_id); … … 1146 1166 $owns = apply_filters('qsot-zoner-owns-current-user', 0, $event, $ticket_type_id, self::$o->{'z.states.r'}); 1147 1167 $success = apply_filters('qsot-zoner-reserve-current-user', false, $event, $ticket_type_id, $requested_count); 1148 if ( !$success) {1168 if ( ! $success | is_wp_error( $success ) ) { 1149 1169 $available = apply_filters('qsot-get-event-available-tickets', 0, $event, $ticket_type_id); 1150 1170 $ticket = get_product($ticket_type_id); -
opentickets-community-edition/trunk/inc/venues/event-area/pricing.class.php
r1009193 r1011855 37 37 add_action('woocommerce_order_status_changed', array(__CLASS__, 'order_status_changed'), 100, 3); 38 38 add_action('woocommerce_before_cart_item_quantity_zero', array(__CLASS__, 'delete_cart_ticket'), 10, 1); 39 add_action('woocommerce_after_cart_item_quantity_update', array(__CLASS__, 'not_more_than_available'), 10, 2);40 39 add_filter('woocommerce_get_cart_item_from_session', array(__CLASS__, 'load_item_data'), 20, 3); 41 40 add_action('woocommerce_add_order_item_meta', array(__CLASS__, 'add_item_meta'), 10, 3); … … 50 49 51 50 add_filter('qsot-item-is-ticket', array(__CLASS__, 'item_is_ticket'), 10, 2); 51 52 if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) { 53 add_action('woocommerce_after_cart_item_quantity_update', array(__CLASS__, 'not_more_than_available'), 10, 2); 54 } 52 55 53 56 if (is_admin()) { -
opentickets-community-edition/trunk/launcher.php
r1010904 r1011855 4 4 * Plugin URI: http://opentickets.com/ 5 5 * Description: Event Management and Online Ticket Sales Platform 6 * Version: 1.6.1 16 * Version: 1.6.12 7 7 * Author: Quadshot Software LLC 8 8 * Author URI: http://quadshot.com/ … … 41 41 'fctm' => 'fc', 42 42 'always_reserve' => 0, 43 'version' => '1.6.1 1',43 'version' => '1.6.12', 44 44 'min_wc_version' => '2.1.0', 45 45 'core_post_type' => 'qsot-event', -
opentickets-community-edition/trunk/readme.txt
r1010904 r1011855 140 140 == Changelog == 141 141 142 = 1.6.12 = 143 * added better error handling on ticket reservation form 144 * improved 'qsBlock' code to adjust properly to covered element size 145 * updated 'over available tickets' check to be more universal 146 142 147 = 1.6.11 = 143 148 * repaired 'my-orders' section of the my account printout on the edit user page in the admin (thanks @rjh1990)
Note: See TracChangeset
for help on using the changeset viewer.