Blocking tickets purchased in multiple venues

Home Forums Ticket Products Event Tickets Plus Blocking tickets purchased in multiple venues

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #988526
    Lucion
    Participant

    I have multiple venues covered by one event calendar. I’d like to be able to tell the user that if they purchase tickets for Event A that runs from 8am to 12pm in the Front Venue that they cannot purchase tickets for Event B that runs at the same time in the Back Venue — or a time that crosses over to the time they’ve already purchased (or is in their cart to be purchased).

    Can WooCommerce Tickets and/or Event Calendar Pro accommodate this?

    #988649
    Barry
    Member

    Hi Lucion,

    That’s an interesting question!

    This isn’t actually something the plugin accommodates directly and while it may be possible with some customization work there are a number of variables and scenarios to be considered:

    • What if a user wishes to buy multiple tickets, but not all for themselves (why block them from doing so)?
    • They may simply choose to purchase tickets in separate checkout transactions – is this something you’d actively seek to discourage?

    So it would be fairly involved – but certainly possible, with one or two caveats. However, it’s not really something we could guide you through here on the support forums, I’m afraid.

    #988651
    Barry
    Member

    … Might it be acceptable for you to simply display a warning to the user that they’ve added overlapping items to the cart? Again, this is really beyond the scope of what we can help with on the forums but may nonetheless be easier to implement 🙂

    #989031
    Lucion
    Participant

    Consider the situation where one account on the WordPress/WooCommerce combination is equivalent to one human being. Purchasing multiple tickets for multiple seats at an event is not allowed.

    At a convention, a venue would then be a table where you’d sit and play a game. As you can’t be in two different places at the same time, you’d want to restrict people from purchasing tickets at another table.

    I guess what I would be interested in knowing is what sort of hooks/filters/functions I could potentially add (if, indeed, the functionality isn’t in the product) to facilitate this situation? Is there a filter, or something equivalent, where I could pursue the logic of determining if a ticket has been purchased at a competing venue (read: table) and then return a thumbs up/thumbs down on the capability to purchase the new ticket?

    Additionally, any suggestions on something to pass to WC_Query would be helpful — like tables to look in for tickets already purchased by the same individual.

    #989064
    Barry
    Member

    There are definitely an abundance of hooks in both our own plugins and WooCommerce itself that you might use.

    While I’d have to leave you to review the WooCommerce code and documentation for the purposes of finding hooks that will let you intercept cart and checkout related processes, on our side you could certainly also do some work to stave off purchases of “conflicting” tickets by for instance overriding the ticket form and presenting an appropriate message there instead of letting them order tickets (when appropriate).

    Our Themer’s Guide covers the basics for safely carrying out this sort of change (ie, targeting the wootickets/tickets.php template).

    The actual nuts and bolts of traversing a user’s order history and determining if another ticket is in conflict is sufficiently complex that I’m afraid it is not something we can guide you through here on the forums, however.

    #993865
    Support Droid
    Keymaster

    This topic has not been active for quite some time and will now be closed.

    If you still need assistance please simply open a new topic (linking to this one if necessary)
    and one of the team will be only too happy to help.

Viewing 6 posts - 1 through 6 (of 6 total)
  • The topic ‘Blocking tickets purchased in multiple venues’ is closed to new replies.