'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' => 'manage_network', ]; /** * Returns the title of the page. * * @since 2.0.0 * @return string Title of the page. */ public function get_title() { return __('Tax Rates', '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 __('Tax Rates', '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 __('Tax Rates', 'wp-multisite-waas'); } /** * Every child class should implement the output method to display the contents of the page. * * @since 1.8.2 * @return void */ public function output(): void { do_action('wu_load_tax_rates_list_page'); $columns = apply_filters( 'wu_tax_rates_columns', [ 'title' => __('Label', 'wp-multisite-waas'), 'country' => __('Country', 'wp-multisite-waas'), 'state' => __('State / Province', 'wp-multisite-waas'), 'city' => __('City', 'wp-multisite-waas'), 'tax_rate' => __('Tax Rate (%)', 'wp-multisite-waas'), 'move' => '', ] ); wu_get_template( 'taxes/list', [ 'columns' => $columns, 'screen' => get_current_screen(), 'types' => Tax::get_instance()->get_tax_rate_types(), ] ); } /** * Adds the cure bg image here as well. * * @since 2.0.0 * @return void */ public function register_scripts(): void { parent::register_scripts(); wp_register_script('wu-tax-rates', wu_get_asset('tax-rates.js', 'js'), ['wu-admin', 'wu-vue', 'underscore', 'wu-selectizer'], wu_get_version(), false); wp_localize_script( 'wu-tax-rates', 'wu_tax_ratesl10n', [ 'name' => __('Tax', 'wp-multisite-waas'), 'confirm_message' => __('Are you sure you want to delete this rows?', 'wp-multisite-waas'), 'confirm_delete_tax_category_message' => __('Are you sure you want to delete this tax category?', 'wp-multisite-waas'), ] ); wp_enqueue_script('wu-vue-sortable', '//cdn.jsdelivr.net/npm/sortablejs@1.8.4/Sortable.min.js', [], wu_get_version()); wp_enqueue_script('wu-vue-draggable', '//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js', [], wu_get_version()); wp_enqueue_script('wu-tax-rates'); } /** * Adds field widgets to edit pages with the same Form/Field APIs used elsewhere. * * @see Take a look at /inc/ui/form and inc/ui/field for reference. * @since 2.0.0 * * @param string $id ID of the widget. * @param array $atts Array of attributes to pass to the form. * @return void */ protected function add_fields_widget($id, $atts = []) { $atts = wp_parse_args( $atts, [ 'widget_id' => $id, 'before' => '', 'after' => '', 'title' => __('Fields', 'wp-multisite-waas'), 'position' => 'side', 'screen' => get_current_screen(), 'fields' => [], 'html_attr' => [], 'classes' => '', 'field_wrapper_classes' => 'wu-w-full wu-box-border wu-items-center wu-flex wu-justify-between wu-p-4 wu-m-0 wu-border-t wu-border-l-0 wu-border-r-0 wu-border-b-0 wu-border-gray-300 wu-border-solid', ] ); add_meta_box( "wp-ultimo-{$id}-widget", $atts['title'], function () use ($atts) { if (wu_get_isset($atts['html_attr'], 'data-wu-app')) { $atts['fields']['loading'] = [ 'type' => 'note', 'desc' => sprintf('