Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2022
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.41 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4.  
  5. function ee_print_available_tickets( $EVT_ID, $event ) {
  6. if ( $event instanceof EE_Event ) {
  7. if ( ! $event->is_sold_out() && $event->is_upcoming() ) {
  8. //get total approved registrations count
  9. $spots_taken = EEM_Registration::instance()->count(array(
  10. array(
  11. 'EVT_ID' => $EVT_ID,
  12. 'STS_ID' => EEM_Registration::status_id_approved,
  13. ),
  14. ), 'REG_ID', true);
  15. $total = $event->total_available_spaces();
  16. if( ! is_int($total) ) {
  17. return; // get out, no limit set
  18. }
  19. $available = $total - $spots_taken;
  20. // output some html
  21. $html = '<div class="total-tickets">';
  22. $html .= 'Number of available tickets: ';
  23. $html .= $available . '</div>';
  24. echo $html;
  25. }
  26. }
  27. }
  28. //add_action( 'AHEE__ticket_selector_chart__template__after_ticket_selector', 'ee_print_available_tickets', 10, 2 );
  29.  
  30.  
  31. function lat_add_inline_script_ts_show_sale_info( ) {
  32. global $post;
  33.  
  34. if ( espresso_display_ticket_selector( $post->ID ) && ( is_single() || ( is_archive() && espresso_display_ticket_selector_in_event_list() ))) :
  35.  
  36. $EVT_ID = get_the_ID();
  37.  
  38. //var_dump($EVT_ID );
  39.  
  40. $remaining_value = 0;
  41. $remain = get_remaining_ticket( $EVT_ID );
  42. //$remain_arr = ($remain) ? json_encode($remain) : '';
  43. //var_dump($remain);
  44. $i = 0;
  45. $custom_js = '
  46. jQuery(document).ready(function($){
  47. var j = 0;
  48. var $datetime_options = $(".datetime-selector-option");
  49. $.each($datetime_options, function () {
  50. $(this).prop("checked", true);
  51. });
  52. if( $(".checkbox-dropdown-selector")[0] ){
  53. $(".tckt-slctr-tbl-tr").addClass("ee-hidden-ticket-tr");
  54. }
  55. var remain_arr = '. json_encode($remain) .';
  56. //$("table.tkt-slctr-tbl thead th:last").after("<th class=\'ee-ticket-selector-ticket-remaining-th cntr \' scope=\'col\'> Remaining</th>");
  57. $("table.tkt-slctr-tbl tbody tr").each(function() {
  58. //$(this).find("td:last").after("<td class=\' cntr \'>"+remain_arr[j]+"</td>");
  59. j++;
  60. });
  61. $("select.ticket-selector-tbl-qty-slct:first option[value=\"1\"]").prop("selected", true);
  62.  
  63. // ********** Ticket display ***************
  64.  
  65. $(".checkbox-dropdown-selector").on("click",".datetime-selector-option",
  66. function () {
  67. var $datetime_selector_option = $(this);
  68. var event_id = $datetime_selector_option.data("tkt_slctr_evt");
  69. var $submit_button = $("#ticket-selector-submit-" + event_id + "-btn");
  70. // track how many ticket selector rows are active ? ie: being displayed
  71. var active_rows = 0;
  72. var datetimes = [];
  73. var $ticket_selector = $("#tkt-slctr-tbl-" + event_id);
  74. if (object_exists($ticket_selector, "$ticket_selector")) {
  75. $datetime_options = $datetime_selector_option.parents("ul").find(".datetime-selector-option");
  76. if (object_exists($datetime_options, "$datetime_options")) {
  77. // add each datetime options to our array of datetimes
  78. $.each($datetime_options, function (index) {
  79. // if checked, then display row and increment active_rows count
  80. if ($(this).prop("checked")) {
  81. datetimes.push("ee-ticket-datetimes-" + $(this).val());
  82. }
  83. });
  84. }
  85. // find all ticket rows for this event
  86. var $ticket_selector_rows = $ticket_selector.find(".tckt-slctr-tbl-tr");
  87. $.each($ticket_selector_rows, function () {
  88. var $ticket_selector_row = $(this);
  89. // get all of the specific datetime related classes assigned to this ticket row
  90. var ticket_row_datetime_classes = $ticket_selector_row.attr("class").split(" ").filter(
  91. function(element) {
  92. return element.indexOf("ee-ticket-datetimes-") !== -1;
  93. }
  94. );
  95. var display = false;
  96. $.each(ticket_row_datetime_classes, function (index, element) {
  97. if ($.inArray(element, datetimes) !== -1) {
  98. display = true;
  99. }
  100. });
  101. if (display) {
  102. $ticket_selector_row.removeClass("ee-hidden-ticket-tr");
  103. active_rows++;
  104. } else {
  105. $ticket_selector_row.addClass("ee-hidden-ticket-tr").find(".ticket-selector-tbl-qty-slct").val(0);
  106. }
  107. });
  108. }
  109.  
  110. }
  111. );
  112.  
  113. // *********** ticket display **********
  114.  
  115.  
  116. });';
  117. wp_add_inline_script('ticket_selector', $custom_js);
  118.  
  119. endif; // espresso page
  120. }
  121. add_action('wp_enqueue_scripts', 'lat_add_inline_script_ts_show_sale_info', 20);
  122.  
  123. function get_remaining_ticket( $EVT_ID )
  124. {
  125. $remain = array();
  126.  
  127. $event = EEM_Event::instance()->get_one_by_ID( $EVT_ID );
  128.  
  129. //var_dump($event);
  130.  
  131. // Pull the required tickets for the event.
  132. /*$required_tickets = $event->tickets( array(
  133. array('TKT_required' => true)
  134. )
  135. );*/
  136.  
  137. $required_tickets = $event->tickets();
  138.  
  139. // Initialize $remaining_spaces as 0.
  140. $remaining_spaces = 0;
  141.  
  142. if($required_tickets) {
  143. // Loop over all of the required tickets for the event.
  144. foreach($required_tickets as $required_ticket) {
  145. // Sanity check to make sure we have an EE_Ticket.
  146. if($required_ticket instanceof EE_Ticket) {
  147. // Add the spaces remaining for each required ticket to $spaces_remaining.
  148. $remaining_spaces += $required_ticket->remaining();
  149. $remain[] = $required_ticket->remaining();
  150. }
  151. }
  152. }
  153.  
  154. //Output the number of remaining spaces.
  155. return $remain;
  156. }
  157.  
  158.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement