prepare_items(); // Begin UI rendering. $table_type = property_exists( $list_table, 'item_type' ) ? (string) $list_table->item_type : 'item'; self::render_form_start( $table_type ); self::render_optimization_settings_form( $user_credits, $list_table ); $persistent_inputs = self::get_persistent_query_args(); self::render_hidden_inputs( array_merge( $persistent_inputs, $hidden_inputs ) ); self::render_table_section( $list_table, $search_label ); self::render_form_end(); } /** * Render the optimization settings form. * * @param int $user_credits Credits available to the current user. * @param object $list_table Must support get_meta_field_options(): array {string: array}. * @return void */ private static function render_optimization_settings_form( $user_credits, $list_table ): void { self::render_credits_and_submit_section( $user_credits ); self::render_field_checkboxes_section( $list_table ); } /** * Attempt to instantiate the requested list table class. * * @param string $list_table_class Fully-qualified class name. * @return object|null Instance of the class, or null if invalid. */ private static function instantiate_list_table( string $list_table_class ): ?object { if ( ! class_exists( $list_table_class ) ) { return null; } $instance = new $list_table_class(); return $instance; } /** * Render an admin notice for invalid list table class. * * @param string $list_table_class Fully-qualified class name. * @return void */ private static function render_invalid_class_notice( string $list_table_class ): void { echo '
'; echo esc_html( Messages::get( 'optimize.invalid_class' ) ) . esc_html( $list_table_class ); echo '