/** * Output required HTML for the custom tab for variable products */ public function build_custom_tab_for_variable() { $children = $this->product->get_available_variations(); foreach ($children as $key => $child) { $variation = get_product($child['variation_id']); $variation_waitlist = new Pie_WCWL_Waitlist($variation); $users = $variation_waitlist->get_registered_users(); if (!empty($users) || !$variation->is_in_stock()) { echo '<div id="wcwl_variation_' . $child['variation_id'] . '" class="wcwl_product_tab_wrap">'; echo '<div class="wcwl_header_wrap"><h3>' . $this->return_variation_tab_title($variation_waitlist) . '</h3></div>'; echo '<div class="wcwl_body_wrap">'; if (empty($users)) { echo '<p class="wcwl_no_users_text">' . esc_html(apply_filters('wcwl_empty_waitlist_introduction', $this->empty_waitlist_introduction)) . '</p>'; echo $this->return_option_to_add_user($variation_waitlist); } else { echo '<p class="wcwl_intro_tab">' . esc_html(apply_filters('wcwl_waitlist_introduction', $this->waitlist_introduction)) . '</p>'; echo '<div class="wcwl_waitlist_tab"><table class="widefat wcwl_product_tab">'; foreach ($users as $user) { echo $this->return_user_info($user, $variation_waitlist); } echo '</table></div>'; echo $this->return_option_to_add_user($variation_waitlist); echo '<p><div class="dashicons dashicons-email-alt wcwl_email_all_tab"></div><a href="' . esc_url_raw($this->get_mailto_link_content($variation_waitlist)) . '" >' . esc_html($this->email_all_users_on_list_text) . '</a></p>'; } echo '</div></div>'; } unset($children[$key]); } echo '<p id="wcwl_in_stock_notice" class="wcwl_in_stock_notice">' . esc_html(apply_filters('wcwl_waitlist_variation_instock_introduction', $this->variable_instock_intro)) . '</p>'; }