Opens in a new tab
Deliver toTennessee
0 0 0Cart
Get a Project Quote

Custom Round Buttons – 1″ Diameter

v0.18.22 October 7, 2026
A product-linked Print Forge baseline for custom one-inch round button workflows.

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
Print design and customization integration surfaces.
WooCommerce product, variation, cart, and order boundaries.
Artwork, asset, export, and fulfillment handoff reference points.
A baseline for later authenticated design, render, dispatch, and artifact verification.

Use cases

  • Custom buttons
  • Print customization
  • WooCommerce products
  • Artwork handoff

Developer

Developer starting point

This baseline links the custom round-button 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:

  1. Bootstrap and service registration
  2. Asset registration and bundle selection
  3. Shortcode renderers and section/control registries
  4. Cart, order, and production-asset persistence
  5. Admin configuration and product-level metadata

Shortcode Surface Area

The current shortcode files live in includes/shortcode.

Implemented shortcode families in this snapshot:

  • apf_common
  • apf_3d plus legacy aliases shortcode_3D and shortcode_3d
  • apf_texture, apf_3d_texture, apf_stl_texture, apf_stl_mapper
  • apf_contour_3d
  • apf_planar_3d
  • apf_planar_canvas
  • apf_photo_print, apf_photo_enhancements
  • apf_card_designer
  • apf_pdf
  • apf_text_layers
  • apf_dtf
  • apf_embroidery_3d
  • apf_metal_art_3d
  • apf_rug_tufting
  • apf_rfid_magstripes, apf_rfid_magstripe
  • apf_sticker_sheets
  • apf_window_clings
  • apf_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 Forge admin menu
  • settings page
  • 3D Models registry page
  • Vendor Offers page
  • AJAX endpoints:
  • apf_admin_get_models
  • apf_admin_save_models
  • apf_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_cart
  • apf_save_canvas_private
  • apf_upload_apa_file
  • apf_m3d_capture_save
  • apf_make_cutcontour
  • apf_cutcontour_export
  • apf_cutcontour_save
  • apf_gallery_toggle_visibility
  • apf_gallery_page
  • apf_card_templates_get
  • apf_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/debug
  • apf_assets_bundles
  • apf/pdfjs/src
  • apf/pdfjs/ver
  • apf/jspdf/src
  • apf/jspdf/ver
  • apf/critical_style_candidates
  • apf/assets/cache_mode
  • apf/assets/version
  • apf/importmap/enabled
  • apf/importmap/three_version
  • apf/importmap/imports
  • apf/preload_style_handles
  • apf_valid_nonce_actions
  • apf/credits/config
  • apf/ai/gen_credits
  • apf/credits/quality_multipliers
  • apf/ai/ref_credits
  • apf/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

  1. Create a shortcode renderer under includes/shortcode.
  2. Register or reuse an asset bundle in APF_Assets.
  3. Add any product/meta configuration needed in admin classes.
  4. If the mode creates previews or generated files, persist them through cart item data and order line items.
  5. If the mode generates sensitive artifacts, route them through Private_Files instead of public attachments.

Add a new generated production file type

  1. Add client-side generation or upload capture.
  2. Submit the file through the M3D or custom AJAX persistence endpoint.
  3. Persist attachment IDs or signed URLs into cart item metadata.
  4. Copy the metadata into order items at checkout.
  5. 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

  1. Extend apf_models schema handling in the admin class.
  2. Surface fields in the model registry UI.
  3. Ensure the viewer-side code understands the new model asset references.
  4. 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.22 at commit 09bddc158a25f978ee8f3c52a7cd749f47f7a0c3.
  • The bootstrap athenian-print-forge.php defines APF_VER as 0.18.22, requires PHP 8.0+, and enables the modular APF_LEAN_SHELL path.
  • WooCommerce cart and quantity integration is centered in includes/classes/class-cart.php (Cart_Handler and filter_vendor_offer_min_qty) and includes/sections/product.php (the #apf-qty input and apt/product_min_qty boundary).
  • Pricing behavior is implemented across includes/classes/ajax/class-ajax-pricing.php and assets/js/utilities/pricing.js, including apf_tpt_shortcode, apf_role_discount, vendor/native offer eligibility, and syncQtyFloor.
  • Private production artifacts and signed delivery are handled by includes/classes/services/class-private-files.php; nonce and route authorization are centralized in includes/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

Source and dependencies
  • 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

Implementation reference sections
  • 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

Detected extension surface
  • 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

Detected 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

Detected REST routes
  • No register_rest_route calls were detected by the baseline scanner.

Hooks

Detected 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

Persistence and integration boundary
  • 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

Source inventory and provenance
  • 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

Baseline review boundary
  • 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.

Changelog

0.11.34 2026-10-06
deployment-0.18.22 2026-10-06
normalized-parity-0.18.22 2026-10-07
source-refresh-0.18.22 2026-10-07