コード例 #1
0
ファイル: Order.php プロジェクト: nullify005/shcc-website
 /**
  * Adds the tickets data to the event Object
  *
  * @param array   $data
  * @param array   $args
  * @param WP_Post $post
  *
  * @return array
  */
 public function add_ticket_data($data, $args, $post)
 {
     if (!tribe_events_has_tickets($post->ID)) {
         return $data;
     }
     $tickets = Tribe__Tickets__Tickets::get_all_event_tickets($post->ID);
     // Reset it
     $data->offers = array();
     foreach ($tickets as $ticket) {
         $data->offers[] = $this->get_offer($ticket, $post);
     }
     return $data;
 }
コード例 #2
0
ファイル: Stock_Counter.php プロジェクト: TakenCdosG/chefs
 /**
  * Gets the sum of all the stock for all the tickets associated to an event.
  *
  * @param int|string|WP_Post $event Either an event post `ID` or a `WP_Post` instance for an event.
  */
 public function get_total_for($event)
 {
     $event = get_post($event);
     $supported_post_types = Tribe__Tickets__Main::instance()->post_types();
     if (empty($event) || !in_array($event->post_type, $supported_post_types)) {
         return new WP_Error('not-an-event', sprintf('The post with ID "%s" is not an event.', $event->ID));
     }
     $sum = 0;
     $all_tickets = Tribe__Tickets__Tickets::get_all_event_tickets($event->ID);
     /** @var Tribe__Tickets__Ticket_Object $ticket */
     foreach ($all_tickets as $ticket) {
         $sum += $ticket->stock();
     }
     // return the sum
     return $sum;
 }
コード例 #3
0
ファイル: Main.php プロジェクト: TakenCdosG/chefs
    /**
     * Injects a buy/RSVP button into oembeds for events when necessary
     */
    public function inject_buy_button_into_oembed()
    {
        $event_id = get_the_ID();
        if (!tribe_events_has_tickets($event_id)) {
            return;
        }
        $tickets = Tribe__Tickets__Tickets::get_all_event_tickets($event_id);
        $has_non_rsvp = false;
        $available = false;
        $now = current_time('timestamp');
        foreach ($tickets as $ticket) {
            if ('Tribe__Tickets__RSVP' !== $ticket->provider_class) {
                $has_non_rsvp = true;
            }
            if ($ticket->date_in_range($now) && $ticket->is_in_stock()) {
                $available = true;
            }
        }
        // if there aren't any tickets available, bail
        if (!$available) {
            return;
        }
        $button_text = $has_non_rsvp ? __('Buy', 'event-tickets') : __('RSVP', 'event-tickets');
        /**
         * Filters the text that appears in the buy/rsvp button on event oembeds
         *
         * @var string The button text
         * @var int Event ID
         */
        $button_text = apply_filters('event_tickets_embed_buy_button_text', $button_text, $event_id);
        ob_start();
        ?>
		<a class="tribe-event-buy" href="<?php 
        echo esc_url(tribe_get_event_link());
        ?>
" title="<?php 
        the_title_attribute();
        ?>
" rel="bookmark"><?php 
        echo esc_html($button_text);
        ?>
</a>
		<?php 
        $buy_button = ob_get_clean();
        /**
         * Filters the buy button that appears on event oembeds
         *
         * @var string The button markup
         * @var int Event ID
         */
        echo apply_filters('event_tickets_embed_buy_button', $buy_button, $event_id);
    }
コード例 #4
0
ファイル: tickets.php プロジェクト: nullify005/shcc-website
 /**
  * Returns true if the event contains one or more tickets which are not
  * subject to any inventory limitations.
  *
  * @param null $event
  *
  * @return bool
  */
 function tribe_events_has_unlimited_stock_tickets($event = null)
 {
     if (null === ($event = tribe_events_get_event($event))) {
         return 0;
     }
     foreach (Tribe__Tickets__Tickets::get_all_event_tickets($event->ID) as $ticket) {
         if (Tribe__Tickets__Ticket_Object::UNLIMITED_STOCK === $ticket->stock()) {
             return true;
         }
     }
     return false;
 }
コード例 #5
0
 /**
  * Adds ticket data to the offers property of the event object.
  */
 protected function add_ticket_offers()
 {
     foreach (Tribe__Tickets__Tickets::get_all_event_tickets($this->event_id) as $this->ticket) {
         $this->add_individual_offer();
     }
 }
コード例 #6
0
 /**
  * Returns a count of the number of global ticket sales for this event.
  *
  * @return int
  */
 public function tickets_sold()
 {
     $sales = 0;
     foreach (Tribe__Tickets__Tickets::get_all_event_tickets($this->post_id) as $ticket) {
         /**
          * @var Tribe__Tickets__Ticket_Object $ticket
          */
         $sales += (int) $ticket->qty_sold();
     }
     return $sales;
 }
コード例 #7
0
 /**
  * Returns a count of the number of global ticket sales for this event.
  *
  * @return int
  */
 public function tickets_sold()
 {
     $sales = 0;
     foreach (Tribe__Tickets__Tickets::get_all_event_tickets($this->post_id) as $ticket) {
         /**
          * @var Tribe__Tickets__Ticket_Object $ticket
          */
         switch ($ticket->global_stock_mode()) {
             case self::CAPPED_STOCK_MODE:
             case self::GLOBAL_STOCK_MODE:
                 $sales += (int) $ticket->qty_sold();
                 break;
         }
     }
     return $sales;
 }