register_product( array( 'id' => self::ID, 'label' => __( 'Image Manager', 'affstackdev-image-manager' ), 'menu_label' => __( 'Image Manager', 'affstackdev-image-manager' ), 'version' => VERSION, 'priority' => 60, 'capability' => 'manage_options', 'min_contract' => '1.0', 'navigation_mode' => 'async', 'enhanced_ui' => (bool) Settings::get()['enhanced_ui'], 'description' => __( 'Image optimization, media organization, editing, and backups you control.', 'affstackdev-image-manager' ), // The Suite gathers its products on every admin request; the screen's code loads only when the page is shown. 'render_callback' => static function (): void { ( new Admin() )->render(); }, ) ); if ( method_exists( $registry, 'register_catalog_product' ) ) { $registry->register_catalog_product( array( 'id' => self::ID, 'label' => __( 'Image Manager', 'affstackdev-image-manager' ), 'description' => __( 'Image optimization, media organization, editing, and portable backups.', 'affstackdev-image-manager' ), 'category' => __( 'Media', 'affstackdev-image-manager' ), 'priority' => 60, 'badge' => __( 'Free', 'affstackdev-image-manager' ), 'aliases' => array( 'affstackdev-image-manager' ), ) ); } if ( method_exists( $registry, 'register_dashboard_widget' ) ) { $registry->register_dashboard_widget( array( 'id' => 'image_manager_summary', 'product_id' => self::ID, 'title' => __( 'Image optimization', 'affstackdev-image-manager' ), 'priority' => 60, 'default_size' => 'medium', 'capability' => 'manage_options', 'render_callback' => array( self::class, 'summary' ), ) ); } } /** * Print Image Manager's short summary for the Suite's dashboard. */ public static function summary(): void { if ( ! current_user_can( 'manage_options' ) ) { return; } $s = Workflow::snapshot(); echo '
' . esc_html( number_format_i18n( $s['found'] ) ) . ' ' . esc_html__( 'images found', 'affstackdev-image-manager' ) . ' · ' . esc_html( number_format_i18n( $s['ready'] ) ) . ' ' . esc_html__( 'with smaller copies', 'affstackdev-image-manager' ) . '
'; echo '' . esc_html( size_format( $s['saved'], 1 ) ) . ' ' . esc_html__( 'saved across prepared files', 'affstackdev-image-manager' ) . '
'; echo '' . esc_html__( 'Open Image Manager', 'affstackdev-image-manager' ) . '
'; } }