<?php /** * WP Multisite WaaS Product Admin Page. * * @package WP_Ultimo * @subpackage Admin_Pages * @since 2.0.0 */ namespace WP_Ultimo\Admin_Pages; // Exit if accessed directly defined('ABSPATH') || exit; /** * WP Multisite WaaS Product Admin Page. */ class Product_List_Admin_Page extends List_Admin_Page { /** * Holds the ID for this page, this is also used as the page slug. * * @var string */ protected $id = 'wp-ultimo-products'; /** * Is this a top-level menu or a submenu? * * @since 1.8.2 * @var string */ protected $type = 'submenu'; /** * If this number is greater than 0, a badge with the number will be displayed alongside the menu title * * @since 1.8.2 * @var integer */ protected $badge_count = 0; /** * Holds the admin panels where this page should be displayed, as well as which capability to require. * * To add a page to the regular admin (wp-admin/), use: 'admin_menu' => 'capability_here' * To add a page to the network admin (wp-admin/network), use: 'network_admin_menu' => 'capability_here' * To add a page to the user (wp-admin/user) admin, use: 'user_admin_menu' => 'capability_here' * * @since 2.0.0 * @var array */ protected $supported_panels = [ 'network_admin_menu' => 'wu_read_products', ]; /** * Allow child classes to register widgets, if they need them. * * @since 1.8.2 * @return void */ public function hooks() {} /** * Returns an array with the labels for the edit page. * * @since 1.8.2 * @return array */ public function get_labels() { return [ 'deleted_message' => __('Product removed successfully.', 'wp-multisite-waas'), 'search_label' => __('Search Product', 'wp-multisite-waas'), ]; } /** * Returns the title of the page. * * @since 2.0.0 * @return string Title of the page. */ public function get_title() { return __('Products', 'wp-multisite-waas'); } /** * Returns the title of menu for this page. * * @since 2.0.0 * @return string Menu label of the page. */ public function get_menu_title() { return __('Products', 'wp-multisite-waas'); } /** * Allows admins to rename the sub-menu (first item) for a top-level page. * * @since 2.0.0 * @return string False to use the title menu or string with sub-menu title. */ public function get_submenu_title() { return __('Products', 'wp-multisite-waas'); } /** * Returns the action links for that page. * * @since 1.8.2 * @return array */ public function action_links() { return [ [ 'url' => wu_network_admin_url('wp-ultimo-edit-product'), 'label' => __('Add Product'), 'icon' => 'wu-circle-with-plus', ], ]; } /** * Loads the list table for this particular page. * * @since 2.0.0 * @return \WP_Ultimo\List_Tables\Base_List_Table */ public function table() { return new \WP_Ultimo\List_Tables\Product_List_Table(); } }