Description
CartTrigger – BAG (Brand · Awards · Gallery) extends the WooCommerce native brand taxonomy with three powerful modules:
Custom Fields
Attach unlimited key–value pairs to any brand. Output them anywhere via shortcode or PHP helper function. CSS classes are fully customisable, including Tailwind arbitrary-value classes (e.g. text-[11px]).
Awards
Manage a list of awards and recognitions for each brand — with optional logo, award name, event name, and year. Display them as a styled list using the [ctbag_awards] shortcode.
Gallery
Upload a curated image gallery per brand. Display it as a responsive grid with the [ctbag_gallery] shortcode. Optional native WooCommerce lightbox (PhotoSwipe) via lightbox="1".
Shortcodes
[ctbag_custom_fields]
Outputs brand custom fields as a <dl> list.
[ctbag_custom_fields brand="slug" wrapper_class="..." dt_class="..." dd_class="..."]
[ctbag_awards]
Outputs brand awards as a styled card list.
[ctbag_awards brand="slug" title="Awards" wrapper_class="..." card_class="..."]
[ctbag_gallery]
Outputs brand gallery as a responsive image grid.
[ctbag_gallery brand="slug" title="Gallery" wrapper_class="..." lightbox="1"]
PHP Helper Functions
All shortcodes are also available as direct PHP functions that bypass WordPress’ shortcode parser — useful when Tailwind arbitrary-value classes (e.g. text-[11px]) would otherwise be mangled:
echo ctbag_custom_fields(['wrapper_class' => 'grid grid-cols-2 gap-4']);
echo ctbag_awards(['title' => __('Awards', 'your-textdomain')]);
echo ctbag_gallery(['title' => __('Gallery', 'your-textdomain'), 'lightbox' => '1']);
Professional Admin UI
All brand meta fields are presented in a clean, card-based admin interface grouped by module (HTML Description, Custom Fields, Awards, Gallery), with collapsible shortcode reference built in. Custom fields and awards support drag & drop reordering. Gallery images can be removed individually (× button on hover) and reordered by dragging.
Captures d’écrans
Installation
- Upload the
carttrigger-bagfolder to the/wp-content/plugins/directory. - Activate the plugin through the Plugins menu in WordPress.
- Go to Products Brands and edit any brand to start adding content.
FAQ
-
Does this plugin require WooCommerce?
-
Yes. WooCommerce must be active before activating CartTrigger – BAG. The plugin declares a
Requires Plugins: woocommercedependency. -
Does it require a specific WooCommerce version?
-
WooCommerce 8.0 or higher is recommended. The plugin has been tested up to WooCommerce 10.7.0.
-
Can I use Tailwind CSS classes in the shortcode attributes?
-
Yes, but classes containing square brackets (e.g.
text-[11px]) will be interpreted as shortcode closing tags by WordPress. Use the PHP helper functions instead — they bypass the shortcode parser entirely. -
Where is the gallery lightbox loaded?
-
The lightbox uses WooCommerce’s bundled PhotoSwipe library. It is only active when
lightbox="1"is set. On pages where WooCommerce scripts are disabled, a graceful fallback (open image in new tab) is used automatically. -
Gallery images look blurry or load slowly — what image size should I use?
-
The
size_thumbparameter controls which registered WordPress image size is used for gallery thumbnails. The default ismedium_large(typically 768 px wide), which is appropriate for large single-column layouts. If your gallery is displayed in a multi-column grid (3–4 columns), usesize_thumb="medium"(300 px) to reduce file weight by 4–6× with no visible quality loss:[ctbag_gallery size_thumb="medium" lightbox="1"]Or via PHP helper:
echo ctbag_gallery(['size_thumb' => 'medium', 'lightbox' => '1']); -
Brand pages load slowly — any caching recommendations?
-
Brand taxonomy pages contain no user-specific content (no cart, no session), so they are ideal candidates for full-page caching. Make sure your caching plugin (LiteSpeed Cache, WP Rocket, W3 Total Cache…) does not exclude brand taxonomy pages from its cache.
Since version 2.0.8, PhotoSwipe (4 CSS/JS files) is only enqueued on brand pages that actually have a gallery, so brands without a gallery already load significantly fewer assets.
If you use LiteSpeed Cache and notice that brand pages are slow after a product update, check whether « Smart Purge on Product Update » is purging brand taxonomy pages. Enabling the LiteSpeed Crawler ensures the cache is regenerated automatically in the background so visitors never hit an uncached page.
Avis
Il n’y a aucun avis pour cette extension.
Contributeurs/contributrices & développeurs/développeuses
« CartTrigger – BAG » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
Contributeurs“CartTrigger – BAG” a été traduit dans 1 locale. Remerciez l’équipe de traduction pour ses contributions.
Traduisez « CartTrigger – BAG » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Journal des modifications
2.0.10
- Compatibility: WordPress 7.0.
- Fix: replaced str_ends_with() with PHP 7.4 compatible equivalent.
2.0.9
- Fix: corrected Contributors username in readme.txt to match the WordPress.org plugin owner account.
2.0.8
- Perf: PhotoSwipe CSS and JS are now enqueued only on brand pages that have a gallery, instead of on every brand page. Brands without a gallery no longer load 4 unnecessary assets (2 CSS + 2 JS).
2.0.7
- Fix: gallery images not saved after selection in the media uploader. Root cause: HTML input had
id="ctb_gallery"while the admin JS targeted#ctbag_gallery, so the hidden field was never updated before form submission.
2.0.6
- Fix: fatal error on brand save due to mismatched method name after 2.0.5 prefix rename (
ctbag_save_term_meta). - Fix: added one-time migration to move existing term meta from legacy
ctb_*keys toctbag_*keys.
2.0.5
- Compliance: renamed all shortcodes and PHP helper functions from
ctb_*toctbag_*to meet the WordPress.org 5-character prefix requirement (ctbag= CartTrigger BAG). - Compliance: extracted inline gallery lightbox JavaScript to an external file (
assets/js/ctbag-gallery-lightbox.js) loaded viawp_enqueue_script(). - Compatibility: WC tested up to 10.7.0.
2.0.4
- New: Gallery — individual image removal with an × button that appears on hover, without reopening the media uploader.
- New: Gallery — drag & drop reordering of thumbnails (jQuery UI Sortable).
- New: Custom Fields — drag & drop reordering of field rows via a handle icon.
- New: Awards — drag & drop reordering of award rows via a handle icon.
2.0.3
- Fix: double-quote characters (
") in award names, event names, and custom field values were corrupted on save. Root cause: WordPress callswp_unslash()(stripslashes) on meta values insideadd_metadata(), which stripped the backslash from\"in the JSON string, producing invalid JSON. Fix: awards and custom fields are now stored as native PHP arrays viamaybe_serialize()— no backslash escaping involved, immune to the slashing issue. Backward-compatible: existing JSON-format data is still read correctly. - Fix: accented characters (é, à, ó…) in award/field text were silently dropped on some server configurations. Replaced
sanitize_text_field()withwp_strip_all_tags()to avoid the internalwp_check_invalid_utf8()call that incorrectly rejected valid multi-byte characters.
2.0.0
- Complete rewrite with professional admin UI (module cards).
- Added HTML Description module with TinyMCE editor on both Add and Edit brand screens.
- Added native WooCommerce lightbox (PhotoSwipe) support for gallery shortcode.
- Added activation notice with link to brand management screen.
- Plugin fully internationalised — translations available for Italian (it_IT) and Spanish (es_ES).


