Custom Printed Unisex T-Shirts – Small
Overview
Product overview
Athenian Print Forge is a modular WooCommerce customization and production-workflow plug-in built around shortcode-driven front-end experiences, a shared asset-bundle registry, cart and order capture pipelines, and admin tooling for 3D model configuration.
In this repository snapshot, the plug-in acts as a shell that assembles:
- front-end shortcode experiences for multiple product-customization modes
- shared JavaScript and CSS bundles through
APF_Assets - cart and order persistence for previews, generated files, and production artifacts
- media, gallery, credits, private-file, and nonce/security services
- admin interfaces for settings, 3D model registry, vendor-offer defaults, and product-level Print Forge settings
Use cases
- Custom apparel
- Print customization
- WooCommerce products
- Artwork handoff
Developer
Developer starting point
This baseline links the custom T-shirt catalog item to the reviewed Print Forge implementation. It does not claim that a design upload, customization, render, artwork artifact, print job, vendor dispatch, shipment, or physical product has been exercised.
High-Level Architecture
The main bootstrap file is athenian-print-forge.php. It defines constants, loads helper functions, requires the major service and shortcode files, and then boots runtime features via WordPress actions.
At a high level, the plug-in is composed of five layers:
- Bootstrap and service registration
- Asset registration and bundle selection
- Shortcode renderers and section/control registries
- Cart, order, and production-asset persistence
- Admin configuration and product-level metadata
Shortcode Surface Area
The current shortcode files live in includes/shortcode.
Implemented shortcode families in this snapshot:
apf_commonapf_3dplus legacy aliasesshortcode_3Dandshortcode_3dapf_texture,apf_3d_texture,apf_stl_texture,apf_stl_mapperapf_contour_3dapf_planar_3dapf_planar_canvasapf_photo_print,apf_photo_enhancementsapf_card_designerapf_pdfapf_text_layersapf_dtfapf_embroidery_3dapf_metal_art_3dapf_rug_tuftingapf_rfid_magstripes,apf_rfid_magstripeapf_sticker_sheetsapf_window_clingsapf_translucent_ink_clings,apf_window_clings_translucent_ink
The main bootstrap also references shortcode-contour.php and shortcode-gallery.php, so check file presence and branch state if you are documenting or extending contour/gallery behavior further.
Admin and Product Configuration
Platform admin UI
The platform admin entry point is includes/classes/admin/class-admin.php.
It provides:
- top-level
Print Forgeadmin menu - settings page
3D Modelsregistry pageVendor Offerspage- AJAX endpoints:
apf_admin_get_modelsapf_admin_save_modelsapf_admin_write_surfaces
The model registry persists to apf_models. Settings persist to apf_settings.
Product-level WooCommerce tab
Product integration lives in includes/classes/admin/class-product-model-meta.php.
It adds a WooCommerce product data tab labeled Print Forge.
Stored product meta includes:
_apf_model_id_apf_require_stl- planar override keys from
Planar_Product_Meta
This tab is the main product-level switchboard for:
- choosing a registered APF 3D model
- requiring STL capture on add-to-cart / capture flows
- defining planar-default surfaces and placement values
Surface Builder and templates
Related admin modules include:
- surface builder admin page wiring
- card template admin
- badge template admin
- planar product meta support
These support the authoring side of model surfaces, placements, and template-driven outputs.
AJAX and REST Endpoints
Key AJAX endpoints in the current tree
apf_add_to_cartapf_save_canvas_privateapf_upload_apa_fileapf_m3d_capture_saveapf_make_cutcontourapf_cutcontour_exportapf_cutcontour_saveapf_gallery_toggle_visibilityapf_gallery_pageapf_card_templates_getapf_card_templates_save- badge-builder list/load/export endpoints
- card-designer list/load/export endpoints
- pricing AJAX endpoints from
class-ajax-pricing.php
REST endpoints
Inbound media resolution is exposed through REST route registration in the inbound-media classes. Review:
Extension Points and Filters
Notable filters and extension surfaces include:
apf/debugapf_assets_bundlesapf/pdfjs/srcapf/pdfjs/verapf/jspdf/srcapf/jspdf/verapf/critical_style_candidatesapf/assets/cache_modeapf/assets/versionapf/importmap/enabledapf/importmap/three_versionapf/importmap/importsapf/preload_style_handlesapf_valid_nonce_actionsapf/credits/configapf/ai/gen_creditsapf/credits/quality_multipliersapf/ai/ref_creditsapf/credits/js_payload
WooCommerce hooks are also central to extension, especially around cart item data, order-line creation, product tabs, and Store API item shaping.
Typical Integration Patterns
Add a new APF-driven product mode
- Create a shortcode renderer under
includes/shortcode. - Register or reuse an asset bundle in
APF_Assets. - Add any product/meta configuration needed in admin classes.
- If the mode creates previews or generated files, persist them through cart item data and order line items.
- If the mode generates sensitive artifacts, route them through
Private_Filesinstead of public attachments.
Add a new generated production file type
- Add client-side generation or upload capture.
- Submit the file through the M3D or custom AJAX persistence endpoint.
- Persist attachment IDs or signed URLs into cart item metadata.
- Copy the metadata into order items at checkout.
- Wire downstream consumers such as PO generators, fulfillment systems, or vendor handoff processes to read the stored meta.
Add a new admin-managed model type
- Extend
apf_modelsschema handling in the admin class. - Surface fields in the model registry UI.
- Ensure the viewer-side code understands the new model asset references.
- If needed, update the product meta tab to allow selection or overrides.
Current deployment evidence
Current observed PrintGhost deployment: 0.18.22. The captured plugin archive print-forge-0.18.22.tar.gz has SHA-256 663a1ebfba864675c0790f7f24ecaddfdfbf5e02c68bafd4ee52876659bfb281, and the deployed main plugin file has SHA-256 f96a476104440a4476fce644d138e65cd116400d5d4a913653d42f63704052bd. The GitHub release reference is v0.18.22 at commit 09bddc158a25f978ee8f3c52a7cd749f47f7a0c3. The normalized deployed file inventory is compatible with the GitHub v0.18.22 release inventory after excluding repository-only CI, build, test, and vendor metadata. For the current v0.18.22 deployment, all 183 shared non-vendor, non-backup files match GitHub v0.18.22 after line-ending normalization; 123 raw differences are line-ending drift, and eight repository-only files are CI, build, lockfile, test, or release metadata. The implementation excerpts on this page are grounded in the authoritative v0.18.22 source reference. The implementation excerpts are anchored to the authoritative v0.18.22 source reference.
Implementation Notes From Current v0.18.22 Source
- The authoritative source reference is GitHub
v0.18.22at commit09bddc158a25f978ee8f3c52a7cd749f47f7a0c3. - The bootstrap
athenian-print-forge.phpdefinesAPF_VERas0.18.22, requires PHP8.0+, and enables the modularAPF_LEAN_SHELLpath. - WooCommerce cart and quantity integration is centered in
includes/classes/class-cart.php(Cart_Handlerandfilter_vendor_offer_min_qty) andincludes/sections/product.php(the#apf-qtyinput andapt/product_min_qtyboundary). - Pricing behavior is implemented across
includes/classes/ajax/class-ajax-pricing.phpandassets/js/utilities/pricing.js, includingapf_tpt_shortcode,apf_role_discount, vendor/native offer eligibility, andsyncQtyFloor. - Private production artifacts and signed delivery are handled by
includes/classes/services/class-private-files.php; nonce and route authorization are centralized inincludes/classes/services/class-security.php. - The current source/release inventory is separate from the deployed runtime scope. See the deployment evidence below for the normalized 183-file parity result and the eight repository-only artifacts.
The current v0.18.22 source identity is authoritative for these three product-linked pages. This documentation still does not claim a live design session, generated artwork, vendor dispatch, shipment, or physical-product fulfillment.
Install
- Authoritative source reference: GitHub v0.18.22 at commit 09bddc158a25f978ee8f3c52a7cd749f47f7a0c3.
- Current observed PrintGhost deployment: 0.18.22; source and deployed runtime share the normalized 183-file common tree.
- Source scope: current release inventory with repository-only CI, build, lockfile, test, and release metadata distinguished from the deployed runtime.
- WordPress, WooCommerce, browser assets, private-file delivery, and the reviewed Print Forge source tree.
- Provider requests, design uploads, generated artifacts, vendor dispatch, shipment, and physical-product effects require separate verification.
Configuration
- Overview — see the linked technical reference excerpt.
- High-Level Architecture — see the linked technical reference excerpt.
- Bootstrap Sequence — see the linked technical reference excerpt.
- Main Runtime Modules — see the linked technical reference excerpt.
- Shortcode Surface Area — see the linked technical reference excerpt.
- Admin and Product Configuration — see the linked technical reference excerpt.
- Media and Production Artifact Flow — see the linked technical reference excerpt.
- AJAX and REST Endpoints — see the linked technical reference excerpt.
- Asset Bundle Mapping — see the linked technical reference excerpt.
- Extension Points and Filters — see the linked technical reference excerpt.
- Typical Integration Patterns — see the linked technical reference excerpt.
- Known Notes for This Snapshot — see the linked technical reference excerpt.
- Recommended Reading Order for Engineers — see the linked technical reference excerpt.
Usage
- Shortcodes detected in local PHP source: 36
- Static action/filter hooks detected in local PHP source: 100
- REST route registrations detected in local PHP source: 0
Shortcodes
- apf-contour — includes/shortcode/shortcode-contour.php
- apf-gallery — includes/shortcode/shortcode-gallery.php
- apf_3d_texture — includes/shortcode/shortcode-texture.php
- apf_3d — includes/shortcode/shortcode-3d.php
- apf_common — athenian-print-forge.php
- apf_common — includes/shortcode/shortcode-common.php
- apf_contour_3d — includes/shortcode/shortcode-contour-3d.php
- apf_contour — includes/shortcode/shortcode-contour.php
- apf_dtf — includes/shortcode/shortcode-dtf.php
- apf_embroidery_3d — includes/shortcode/shortcode-embroidery-3d.php
- apf_gallery — includes/shortcode/shortcode-gallery.php
- apf_metal_art_3d — includes/shortcode/shortcode-metal-art-3d.php
- apf_micro_perf_clings — includes/shortcode/shortcode-window-clings.php
- apf_name_insights_3d — includes/shortcode/shortcode-name-insights.php
- apf_name_story_3d — includes/shortcode/shortcode-name-insights.php
- apf_neon_light — includes/shortcode/shortcode-neon-light.php
- apf_neon_sign — includes/shortcode/shortcode-neon-light.php
- apf_pdf — includes/shortcode/shortcode-pdf.php
- apf_photo_enhancements — includes/shortcode/shortcode-photo-enhance.php
- apf_photo_print — includes/shortcode/shortcode-photo-enhance.php
- apf_planar_3d — includes/shortcode/shortcode-planar-3d.php
- apf_planar_canvas — includes/shortcode/shortcode-planar-canvas.php
- apf_rfid_magstripes — includes/shortcode/shortcode-rfid-magstripes.php
- apf_rfid_magstripe — includes/shortcode/shortcode-rfid-magstripes.php
- apf_rug_tufting — includes/shortcode/shortcode-rug-tufting.php
- apf_stl_mapper — includes/shortcode/shortcode-texture.php
- apf_stl_texture — includes/shortcode/shortcode-texture.php
- apf_texture — includes/shortcode/shortcode-texture.php
- apf_text_layers — includes/shortcode/shortcode-text-layers.php
- apf_translucent_ink_clings — includes/shortcode/shortcode-translucent-window-clings.php
- apf_translucent_window_clings — includes/shortcode/shortcode-translucent-window-clings.php
- apf_window_clings_micro_perf — includes/shortcode/shortcode-window-clings.php
- apf_window_clings_translucent_ink — includes/shortcode/shortcode-translucent-window-clings.php
- apf_window_clings — includes/shortcode/shortcode-window-clings.php
- shortcode_3D — includes/shortcode/shortcode-3d.php
- shortcode_3d — includes/shortcode/shortcode-3d.php
REST Endpoints
- No register_rest_route calls were detected by the baseline scanner.
Hooks
- added_post_meta — includes/classes/services/class-media.php
- add_attachment — includes/classes/services/class-media.php
- add_meta_boxes — includes/classes/admin/class-badge-template-admin.php
- add_meta_boxes — includes/classes/admin/class-planar-product-meta.php
- admin_enqueue_scripts — athenian-print-forge.php
- admin_enqueue_scripts — includes/classes/admin/class-admin.php
- admin_footer — includes/classes/class-assets.php
- admin_head — includes/classes/class-assets.php
- admin_init — includes/classes/admin/class-admin.php
- admin_menu — includes/classes/admin/class-admin.php
- admin_notices — athenian-print-forge.php
- admin_post_apf_admin_purge_order_thumbnails — includes/classes/admin/class-admin.php
- ajax_query_attachments_args — includes/classes/services/class-media.php
- all_admin_notices — includes/classes/admin/class-admin.php
- apf/ai/gen_credits — includes/functions/functions-common-credits.php
- apf/ai/ref_credits — includes/functions/functions-common-credits.php
- apf/collapsible/icon — includes/controls/registry.php
- apf/collapsible/meta — includes/controls/registry.php
- apf/common/context — includes/functions/functions-common-credits.php
- apf/controls/plan — includes/shortcode/shortcode-common.php
- apf/controls/section_title — includes/controls/registry.php
- apf/controls/section_title — includes/sections/contour.php
- apf/credits/config — includes/classes/services/class-credits.php
- apf/credits/quality_multipliers — includes/functions/functions-common-credits.php
- apf/importmap/enabled — includes/classes/class-assets.php
- apf/media_picker/default_items_mode — includes/classes/services/class-media.php
- apf/media_picker/default_items — includes/classes/services/class-media.php
- apf/media_picker/force_custom_ui — athenian-print-forge.php
- apf/media_picker/use_wp_media — athenian-print-forge.php
- apf/sc3d/default_parent_ids — includes/shortcode/shortcode-3d.php
- apf/svg_icons — includes/shortcode/shortcode-common.php
- apf/texture/product_model — includes/sections/product.php
- apf_cart_generate_attachment_metadata — includes/classes/class-cart.php
- apf_m3d_generate_attachment_metadata — includes/functions/3d-capture-cart.php
- apf_private_files_cleanup — includes/classes/services/class-private-files.php
- apt/product_min_qty — includes/classes/class-cart.php
- attachment_fields_to_edit — includes/classes/services/class-media.php
- attachment_fields_to_save — includes/classes/services/class-media-visibility.php
- attachment_fields_to_save — includes/classes/services/class-media.php
- big_image_size_threshold — includes/functions/3d-capture-cart.php
- deleted_post_meta — includes/classes/services/class-media.php
- delete_attachment — includes/classes/services/class-media.php
- delete_user — includes/classes/services/class-media-visibility.php
- edit_attachment — includes/classes/services/class-media.php
- init — athenian-print-forge.php
- init — includes/classes/admin/class-badge-template-admin.php
- init — includes/classes/ajax/class-ajax-badge-builder.php
- init — includes/classes/class-cart.php
- init — includes/classes/services/class-badge-user-templates.php
- init — includes/classes/services/class-credits.php
- init — includes/classes/services/class-media.php
- init — includes/classes/services/class-private-files.php
- init — includes/controls/registry.php
- init — includes/sections/badge-builder.php
- init — includes/sections/contour.php
- init — includes/sections/downloads.php
- init — includes/sections/metal-art.php
- init — includes/sections/name-insights.php
- init — includes/sections/photo-enhancements.php
- init — includes/sections/product.php
- init — includes/sections/three3d.php
- init — includes/sections/variable-labels.php
- init — includes/shortcode/shortcode-3d.php
- init — includes/shortcode/shortcode-common.php
- init — includes/shortcode/shortcode-contour-3d.php
- init — includes/shortcode/shortcode-contour.php
- init — includes/shortcode/shortcode-gallery.php
- init — includes/shortcode/shortcode-metal-art-3d.php
- init — includes/shortcode/shortcode-name-insights.php
- init — includes/shortcode/shortcode-photo-enhance.php
- init — includes/shortcode/shortcode-planar-canvas.php
- init — includes/shortcode/shortcode-texture.php
- intermediate_image_sizes_advanced — includes/functions/3d-capture-cart.php
- kses_allowed_protocols — includes/classes/class-cart.php
- manage_media_custom_column — includes/classes/services/class-media.php
- manage_upload_columns — includes/classes/services/class-media.php
- manage_upload_sortable_columns — includes/classes/services/class-media.php
- manage_ — includes/classes/admin/class-badge-template-admin.php
- plugins_loaded — athenian-print-forge.php
- plugins_loaded — includes/classes/admin/class-badge-product-meta.php
- plugins_loaded — includes/classes/admin/class-badge-template-admin.php
- plugins_loaded — includes/classes/admin/class-product-model-meta.php
- plugins_loaded — includes/classes/services/class-badge-user-templates.php
- posts_where — includes/classes/ajax/class-ajax-gallery.php
- posts_where — includes/classes/services/class-media.php
- query_vars — includes/classes/services/class-private-files.php
- save_post_product — includes/classes/admin/class-planar-product-meta.php
- save_post — includes/classes/admin/class-badge-template-admin.php
- script_loader_tag — includes/classes/class-assets.php
- script_loader_tag — includes/shortcode/shortcode-texture.php
- sw_wapf_form_field_attributes — includes/functions/functions-common-product.php
- sw_wapf_form_select_option_attributes — includes/functions/functions-common-product.php
- template_redirect — includes/classes/services/class-private-files.php
- updated_post_meta — includes/classes/services/class-media.php
- upload_mimes — includes/classes/ajax/class-ajax-cutcontour.php
- upload_mimes — includes/classes/class-cart.php
- upload_mimes — includes/classes/services/class-media.php
- upload_mimes — includes/functions/3d-capture-cart.php
- woocommerce_add_cart_item_data — includes/classes/class-cart.php
- woocommerce_add_cart_item_data — includes/classes/services/class-media-visibility.php
Data Model
- Asset Bundle Mapping — described in the local technical reference.
- Typical Integration Patterns — described in the local technical reference.
- Recommended Reading Order for Engineers — described in the local technical reference.
API Reference
- Authoritative source version: 0.18.22.
- Repository reference: v0.18.22 / 09bddc158a25f978ee8f3c52a7cd749f47f7a0c3.
- Source bootstrap and deployed main-file identity are pinned by the release commit, archive SHA-256, and deployed main-file SHA-256 below.
- Deployment archive SHA-256: 663a1ebfba864675c0790f7f24ecaddfdfbf5e02c68bafd4ee52876659bfb281.
- Deployed main plugin file SHA-256: f96a476104440a4476fce644d138e65cd116400d5d4a913653d42f63704052bd.
- Normalized parity: 183 shared non-vendor/non-backup files; 123 raw line-ending differences; eight repository-only release artifacts.
- Minimum-quantity integration boundary: Print Forge owns the PrintGhost apt/product_min_qty callback; ThixStrip remains a separate Pricing Tiers site-specific adapter.
Troubleshooting
- Use GitHub v0.18.22 at 09bddc158a25f978ee8f3c52a7cd749f47f7a0c3 as the current implementation reference for these pages.
The authoritative v0.18.22 source and the representative PrintGhost runtime match across 183 shared non-vendor, non-backup files after line-ending normalization. The 123 raw differences are line-ending representation drift, and eight source-only files are repository CI, build, lockfile, test, and release metadata.
- If quantity behavior differs, inspect Print Forge vendor-offer metadata and the apt/product_min_qty owner before changing Pricing Tiers core behavior.
Treat payment, carrier, vendor, shipment, inventory, account, credential, tax, AI, and external-provider behavior as integration-dependent until exercised in the target environment.
FAQ
What is this page intended to establish?
A versioned, product-linked starting point for iterative developer documentation. It combines the local implementation reference with a detected-code inventory and a committed GitHub baseline.
Is the linked repository baseline verified?
Yes. The repository URL, ref, and commit recorded on this page were verified from the clean GitHub baseline prepared for this documentation pass. That does not by itself prove fleet deployment parity.
What remains for release-grade documentation?
Reconcile the recorded source baseline with the deployed plugin version, then exercise the relevant authenticated, store, provider, payment, tax, carrier, or generated-artifact paths in the target environment.
Which Print Forge version is currently deployed?
The current representative PrintGhost deployment is version 0.18.22. The page also identifies the local technical source snapshot used for its implementation excerpts and keeps that source identity separate from the deployed runtime tree.
What does normalized Print Forge parity establish?
For the current 0.18.22 deployment, all 183 shared non-vendor, non-backup runtime files match the GitHub release after line-ending normalization. The raw archive and source files are not byte-identical because 123 files use different line-ending representations; eight repository-only CI, build, lockfile, test, and release files are outside the deployed tree.
Which source baseline do these implementation notes use?
These pages now use the authoritative Print Forge v0.18.22 source at commit 09bddc158a25f978ee8f3c52a7cd749f47f7a0c3. The deployed PrintGhost runtime is the matching current identity after normalized file-content comparison.