current_mode = 'list'; } /** * Returns the list of columns for this particular List Table. * * @since 2.0.0 * @return array */ public function get_columns() { $columns = array( '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) { $m = $item->get_membership(); $redirect = current_user_can('wu_edit_sites') ? 'wp-ultimo-edit-site' : 'wp-ultimo-sites'; echo wu_responsive_table_row( array( 'id' => $item->get_id(), 'title' => $item->get_title(), 'url' => wu_network_admin_url( $redirect, array( 'id' => $item->get_id(), ) ), 'image' => $this->column_featured_image_id($item), 'status' => $this->column_type($item), ), array( 'link' => array( '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' => array( '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' => array( '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', array( 'id' => $m->get_id(), ) ) : '', ), ), array( 'date_created' => array( '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 = array(); $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() ? array($membership->get_pending_site()) : array(); break; case 'wp-ultimo-edit-customer': $customer = wu_get_customer($id); $pending_sites = $customer ? $customer->get_pending_sites() : array(); break; } foreach ($pending_sites as &$site) { $site->set_type('pending'); $site->set_blog_id('--'); } return array_merge($pending_sites, $sites); } }