The File Manager is responsible for securely downloading the upscaled image from the Upsampler temporary URL and storing it locally. It does not serve downloads to customers (that is handled...
The Job Manager handles the complete lifecycle of image processing requests from creation to completion. Job Lifecycle Status Progression awaiting_payment - Stripe checkout session created pending - Payment confirmed, ready...
The Webhook Manager provides a shared routing and utility layer for external service webhooks. Its primary goal is to make webhook handling reliable (by using parse_request) and centralized (so Stripe/Upsampler...
The button injection system automatically adds download buttons to WordPress image blocks with advanced theme compatibility. Detection Methods Multi-Layer Detection Robust attachment ID detection for various theme implementations: Image Class...
The modal system provides the user interface for image upscaling with pricing, payment, and status tracking. Modal Structure HTML Template Modal structure defined in templates/modal.php: Header with title and close...
The plugin provides secure webhook endpoints for external service integration, implemented via parse_request (not rewrite rules) for reliability. Endpoint Structure Base Configuration Webhooks are handled at: Stripe: /smi-webhook/stripe/ Upsampler: /smi-webhook/upsampler/...
The Block Processor handles Gutenberg image block detection and download button injection for WordPress content. Content Processing Hook Integration Filters the_content at priority 5 Processes only singular posts and pages...
The Featured Image Processor injects the Sell My Images “Download Hi-Res” button for featured images. Unlike Gutenberg block images (handled via the Block Processor + JS button injection), featured images...
The Filter Manager controls where download buttons appear across your WordPress site with flexible inclusion and exclusion rules. Display Control Modes All Posts (Default) Shows buttons on all posts and...
Analytics data storage uses WordPress post meta for efficient click tracking and engagement metrics. Storage Method Post Meta Integration Analytics stored using _smi_click_analytics meta key: Single meta entry per post...