コード例 #1
0
ファイル: tickets.php プロジェクト: nullify005/shcc-website
 /**
  * Gets the "tickets sold" message for a given ticket
  *
  * @param Tribe__Tickets__Ticket_Object $ticket Ticket to analyze
  *
  * @return string
  */
 function tribe_tickets_get_ticket_stock_message(Tribe__Tickets__Ticket_Object $ticket)
 {
     $stock = $ticket->stock();
     $sold = $ticket->qty_sold();
     $cancelled = $ticket->qty_cancelled();
     $pending = $ticket->qty_pending();
     $event = Tribe__Tickets__Tickets::find_matching_event($ticket);
     $global_stock = new Tribe__Tickets__Global_Stock($event->ID);
     $is_global = Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $ticket->global_stock_mode();
     $is_capped = Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $ticket->global_stock_mode();
     $stock_cap = $ticket->global_stock_cap();
     // If ticket sales are capped, do not suggest that more than the cap amount are available
     if ($is_capped && $stock > $stock_cap) {
         $stock = $stock_cap;
     }
     // If it is a global-stock ticket but the global stock level has not yet been set for the event
     // then return something better than just '0' as the available stock
     if ($is_global && 0 === $stock && !$global_stock->is_enabled()) {
         $stock = '<i>' . __('global inventory', 'event-tickets') . '</i>';
     }
     // There may not be a fixed inventory - in which case just report the number actually sold so far
     if (empty($stock) && $stock !== 0) {
         $message = sprintf(esc_html__('Sold %d', 'event-tickets'), esc_html($sold));
     } else {
         $cancelled_count = empty($cancelled) ? '' : esc_html(sprintf(_x(' cancelled: %1$d', 'ticket stock message (cancelled stock)', 'event-tickets'), (int) $cancelled));
         $pending_count = $pending < 1 ? '' : esc_html(sprintf(__(' pending: %1$d', 'ticket stock message (pending stock)', 'event-tickets'), (int) $pending));
         $message = sprintf(esc_html__('Sold %1$d (units remaining: %2$s%3$s%4$s)', 'event-tickets'), esc_html($sold), $stock, $cancelled_count, $pending_count);
     }
     return $message;
 }
コード例 #2
0
ファイル: tickets.php プロジェクト: probono-dauty/wordpress
 /**
  * Accepts the post object or ID for a product and, if it represents an event
  * ticket, returns the corresponding event object.
  *
  * If this cannot be determined boolean false will be returned instead.
  *
  * @param $possible_ticket
  *
  * @return bool|WP_Post
  */
 function tribe_events_get_ticket_event($possible_ticket)
 {
     return Tribe__Tickets__Tickets::find_matching_event($possible_ticket);
 }