Athenian Photo Gallery for WooCommerce
Overview
Product overview
Most customer photo programs break down because the content workflow is fragmented. Submission happens through one tool, moderation through email, attribution in spreadsheets, and display through a gallery plugin that knows nothing about WooCommerce products, product categories, or product color attributes. The result is a lot of manual cleanup and very little reusable merchandising value.
Customer Photo Gallery solves that by combining submission, profile capture, moderation, product tagging, filtering, and front-end rendering into one WordPress and WooCommerce-native plugin. Customers can submit content tied to products, the business can review and approve it, and the storefront can surface it through galleries, product-specific views, and contributor pages that stay connected to catalog data.
Use cases
- Customer galleries
- User-generated content
- Product photos
- Moderated submissions
Developer
Developer starting point
This baseline documents the Photo Gallery architecture. It does not claim that a live customer upload, moderation decision, media delivery, or product-gallery interaction has been exercised.
Ecosystem integration story
WordPress
Customer Photo Gallery is built as a native WordPress plugin with its own custom post type, taxonomies, admin columns, editor metaboxes, shortcode rendering, and settings screens. It fits naturally into WordPress editorial workflows instead of forcing the gallery into an external SaaS model.
WooCommerce
WooCommerce is central to the plugin's value. Product search, related-product tagging, product-category policy, and color-attribute awareness all tie the gallery back to the actual catalog. This is what makes the content commercially useful instead of merely decorative.
WordPress and WooCommerce customer profiles
The plugin reads business and contact data from the user's WordPress and WooCommerce profile, supports business logo uploads, and stores a per-submission profile snapshot for continuity. That lets merchants represent contributors consistently while still allowing users to choose how much information appears publicly.
ACF-compatible metadata workflows
Customer Photo Gallery supports ACF-style relationship and taxonomy data for related products and color groups while also handling raw meta fallbacks. This makes it workable in sites that already use ACF in their content model.
Front-end merchandising surfaces
The plugin supports multiple front-end display modes through shortcodes, including full galleries, filter bars, product-specific galleries, floating gallery blocks, and user-gallery links. That flexibility allows stores to use the same submission system across landing pages, product pages, and contributor pages.
Custom storefront and API use cases
Because gallery filtering and search are exposed through AJAX and REST, Customer Photo Gallery can support richer JavaScript experiences and can serve as a backend content source for custom storefront implementations.
Install
- Reviewed source folder: athenian-customer-photo-gallery
- Plugin version reviewed: 1.1.1
- Local source inventory: 35 files (temporary, test, and Git metadata excluded).
- GitHub baseline: https://github.com/Athenian-Brands/athenian-customer-photo-gallery at baseline/devdocs-1.1.1-20261006g / bb31bd8ca53f24b75db54008f65dfcca33a053a9.
- WordPress, WooCommerce, and the configured media environment.
- Uploads, moderation decisions, media storage, customer identity, and storefront rendering require separate target verification.
Configuration
- Working positioning — see the linked technical reference excerpt.
- Executive summary — see the linked technical reference excerpt.
- Core marketing message — see the linked technical reference excerpt.
- The problem Customer Photo Gallery solves — see the linked technical reference excerpt.
- What Customer Photo Gallery does — see the linked technical reference excerpt.
- Ecosystem integration story — see the linked technical reference excerpt.
- Why this matters commercially — see the linked technical reference excerpt.
- Key differentiators — see the linked technical reference excerpt.
- Suggested messaging pillars — see the linked technical reference excerpt.
- Short-form copy options — see the linked technical reference excerpt.
- Sales narrative — see the linked technical reference excerpt.
- Best-fit use cases — see the linked technical reference excerpt.
- Positioning statement — see the linked technical reference excerpt.
- Platform-focused primary functionality copy — see the linked technical reference excerpt.
Usage
- Shortcodes detected in local PHP source: 7
- Static action/filter hooks detected in local PHP source: 42
- REST route registrations detected in local PHP source: 3
Shortcodes
- cpg_my_gallery_link — includes/class-cpg-user-gallery-routes.php
- cpg_my_gallery_url — includes/class-cpg-user-gallery-routes.php
- customer_gallery_filters — includes/class-cpg-gallery-shortcode.php
- customer_gallery_for_product — includes/class-cpg-gallery-shortcode.php
- customer_gallery_submission_form — includes/class-cpg-form-handler.php
- customer_gallery — includes/class-cpg-gallery-shortcode.php
- floating_customer_gallery — includes/class-cpg-frontend-gallery.php
REST Endpoints
- cpg/v1 — includes/class#U2011cpg#U2011rest.php
- cpg/v1 — includes/class-cpg-rest-search.php
- cpg/v1 — includes/class-cpg-rest.php
Hooks
- acf/init — customer-photo-gallery.php
- add_meta_boxes — includes/class-cpg-moderation.php
- add_meta_boxes — includes/class-cpg-post-type.php
- admin_init — includes/class-cpg-admin-settings.php
- admin_menu — includes/class-cpg-admin-settings.php
- body_class — includes/class-cpg-user-gallery-routes.php
- cpg/force_enqueue — includes/class-cpg-enqueue-assets.php
- document_title_parts — includes/class-cpg-user-gallery-routes.php
- edit_user_profile_update — includes/class-cpg-user-business-profile.php
- edit_user_profile — includes/class-cpg-user-business-profile.php
- init — includes/class-cpg-post-type.php
- manage_customer_gallery_posts_columns — includes/class-cpg-moderation.php
- manage_customer_gallery_posts_columns — includes/class-cpg-post-type.php
- manage_customer_gallery_posts_custom_column — includes/class-cpg-moderation.php
- manage_customer_gallery_posts_custom_column — includes/class-cpg-post-type.php
- personal_options_update — includes/class-cpg-user-business-profile.php
- plugins_loaded — customer-photo-gallery.php
- pre_get_document_title — includes/class-cpg-user-gallery-routes.php
- rest_api_init — includes/class#U2011cpg#U2011rest.php
- rest_api_init — includes/class-cpg-rest-search.php
- rest_api_init — includes/class-cpg-rest.php
- save_post_customer_gallery — includes/class-cpg-admin-notifications.php
- save_post_customer_gallery — includes/class-cpg-moderation.php
- save_post_customer_gallery — includes/class-cpg-post-type.php
- show_user_profile — includes/class-cpg-user-business-profile.php
- template_redirect — includes/class-cpg-user-gallery-routes.php
- wp_ajax_cpg_admin_product_search — includes/class-cpg-post-type.php
- wp_ajax_cpg_author_search — includes/class-cpg-ajax-filters.php
- wp_ajax_cpg_filter_gallery — includes/class-cpg-ajax-filters.php
- wp_ajax_cpg_product_search — includes/class-cpg-ajax-filters.php
- wp_ajax_cpg_product_search — includes/class-cpg-form-handler.php
- wp_ajax_cpg_single_upload — includes/class-cpg-form-handler.php
- wp_ajax_cpg_upload_business_logo — includes/class-cpg-user-business-profile.php
- wp_ajax_nopriv_cpg_author_search — includes/class-cpg-ajax-filters.php
- wp_ajax_nopriv_cpg_filter_gallery — includes/class-cpg-ajax-filters.php
- wp_ajax_nopriv_cpg_product_search — includes/class-cpg-ajax-filters.php
- wp_ajax_nopriv_cpg_product_search — includes/class-cpg-form-handler.php
- wp_ajax_nopriv_cpg_single_upload — includes/class-cpg-form-handler.php
- wp_enqueue_scripts — includes/class-cpg-enqueue-assets.php
- wp_enqueue_scripts — includes/class-cpg-form-handler.php
- wp_footer — includes/class-cpg-gallery-shortcode.php
- wp — includes/class-cpg-enqueue-assets.php
Data Model
- Ecosystem integration story — described in the local technical reference.
API Reference
- Local source digest: 9f3088b0d3f2fa56944572b5b59d873ce0612a4118c1e7c3cc05c5f5a7c043a3
- Repository URL: https://github.com/Athenian-Brands/athenian-customer-photo-gallery
- Repository reference: baseline/devdocs-1.1.1-20261006g
- Repository commit: bb31bd8ca53f24b75db54008f65dfcca33a053a9
Source files include: assets/css/cpg-filters.css, assets/css/cpg-product-gallery-grid.css, assets/css/form.css, assets/css/gallery.css, assets/css/lightbox.css, assets/css/user-gallery.css, assets/js/filters.js, assets/js/form-multi.js, assets/js/form-uploader.js, assets/js/form.js, assets/js/lightbox.js, athenian-photo-gallery-icon.png, customer-photo-gallery.php, customer-photo-gallery.zip, docs/athenian-platform-marketing.md, docs/athenian-platform-technical.md, docs/customer-photo-gallery-marketing-document.md, docs/remote-product-catalog.md, docs/technical-marketing.md, includes/class#U2011cpg#U2011rest.php, includes/class-cpg-admin-notifications.php, includes/class-cpg-admin-settings.php, includes/class-cpg-ajax-filters.php, includes/class-cpg-category-policy.php, includes/class-cpg-enqueue-assets.php, includes/class-cpg-form-handler.php, includes/class-cpg-frontend-gallery.php, includes/class-cpg-gallery-shortcode.php, …
Troubleshooting
This baseline documents the Photo Gallery architecture. It does not claim that a live customer upload, moderation decision, media delivery, or product-gallery interaction has been exercised.
- Confirm the deployed plugin version, active dependencies, and current repository tree before using implementation details as a release contract.
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.