current_mode = 'list'; } /** * Returns the list of columns for this particular List Table. * * @since 2.0.0 * @return array */ public function get_columns() { $columns = [ 'responsive' => '', ]; return $columns; } /** * Renders the inside column responsive. * * @since 2.0.0 * * @param object $item The item being rendered. * @return void */ public function column_responsive($item): void { $m = $item->get_membership(); $redirect = current_user_can('wu_edit_sites') ? 'wp-ultimo-edit-site' : 'wp-ultimo-sites'; echo wu_responsive_table_row( [ 'id' => $item->get_id(), 'title' => $item->get_title(), 'url' => wu_network_admin_url( $redirect, [ 'id' => $item->get_id(), ] ), 'image' => $this->column_featured_image_id($item), 'status' => $this->column_type($item), ], [ 'link' => [ 'icon' => 'dashicons-wu-link1 wu-align-middle wu-mr-1', 'label' => __('Visit Site', 'wp-ultimo'), 'url' => $item->get_active_site_url(), 'value' => $item->get_active_site_url(), ], 'dashboard' => [ 'icon' => 'dashicons-wu-browser wu-align-middle wu-mr-1', 'label' => __('Go to the Dashboard', 'wp-ultimo'), 'value' => __('Dashboard', 'wp-ultimo'), 'url' => get_admin_url($item->get_id()), ], 'membership' => [ 'icon' => 'dashicons-wu-rotate-ccw wu-align-middle wu-mr-1', 'label' => __('Go to the Membership', 'wp-ultimo'), 'value' => $m ? $m->get_hash() : '', 'url' => $m ? wu_network_admin_url( 'wp-ultimo-edit-membership', [ 'id' => $m->get_id(), ] ) : '', ], ], [ 'date_created' => [ 'icon' => 'dashicons-wu-calendar1 wu-align-middle wu-mr-1', 'label' => '', /* translators: the placeholder is a date */ 'value' => $item->get_type() === 'pending' ? __('Not Available', 'wp-ultimo') : sprintf(__('Created %s', 'wp-ultimo'), wu_human_time_diff(strtotime((string) $item->get_date_registered()))), ], ] ); } /** * Overrides the parent method to add pending sites. * * @since 2.0.0 * * @param integer $per_page Number of items to display per page. * @param integer $page_number Current page. * @param boolean $count If we should count records or return the actual records. * @return array */ public function get_items($per_page = 5, $page_number = 1, $count = false) { $sites = parent::get_items($per_page, $page_number, $count); if ($count) { return $sites; } $pending_sites = []; $page = wu_request('page'); $id = wu_request('id'); if ( ! $id) { return $sites; } switch ($page) { case 'wp-ultimo-edit-membership': $membership = wu_get_membership($id); $pending_sites = $membership && $membership->get_pending_site() ? [$membership->get_pending_site()] : []; break; case 'wp-ultimo-edit-customer': $customer = wu_get_customer($id); $pending_sites = $customer ? $customer->get_pending_sites() : []; break; } foreach ($pending_sites as &$site) { $site->set_type('pending'); $site->set_blog_id('--'); } return array_merge($pending_sites, $sites); } }