Clevers Product Carousel

Beskriuwing

Clevers Product Carousel lets you create and display fully customizable WooCommerce product carousels from the WordPress admin area.

  • Ready-to-use carousel and card presets.
  • Per-carousel color settings for buttons, background, and text.
  • Product filters: featured, on-sale, in-stock, and categories.
  • Carousel controls: slides, autoplay, dots, and arrows.
  • Gutenberg block to insert saved carousels from the editor.
  • Cached rendering and dynamic CSS variables for performance.
  • Theme-overridable templates (WooCommerce-style structure).

Main Features

  • Customizable presets: 4 base designs that can be extended.
  • Dynamic colors: define colors per carousel (primary, secondary, buttons, badges, etc.).
  • WooCommerce compatible: uses WooCommerce product data and pricing.
  • Visual options: autoplay, speed, slides to show, arrows, and dots.
  • Theme overrides: copy templates/carousels/carousel-1.php or templates/cards/card-1.php to /clevers-product-carousel/ inside your theme to customize markup.
  • Caching system: reduces repeated queries and improves rendering speed.

Third-party Libraries

This plugin bundles Slick.js v1.8.1 by Ken Wheeler, licensed under the MIT License.
Source: https://github.com/kenwheeler/slick

License

This plugin is free software, licensed under GPLv2 or later.

Blokken

Dizze plugin jout 1 blok.

  • Clevers Product Carousel

Ynstallaasje

  1. Upload the plugin folder to /wp-content/plugins/, or install it from the WordPress plugin directory.
  2. Activate the plugin from the “Plugins” menu in WordPress.
  3. Create a new Product Carousel from the “Product Carousels” menu in the admin area.
  4. Configure layout, colors, and filters.
  5. Insert the carousel into any page or template using the shortcode:

    [cleverspr_carousel id="123"]

Replace 123 with your carousel post ID.

You can also insert it using the Clevers Product Carousel block in Gutenberg.

FAQ

Can I use it without WooCommerce?

No. The plugin requires WooCommerce to load products.

How do I change the card layout?

Copy the file from:
wp-content/plugins/clevers-product-carousel/templates/cards/card-1.php
to:
wp-content/themes/tu-tema/clevers-product-carousel/cards/card-1.php
and edit it in your theme.

How do I customize colors?

Each carousel includes color fields in the editor. You can also override CSS variables:

`css

–clevers-primary: #e63946;
–clevers-secondary: #1d3557;
}
`

Does the plugin provide hooks/filters for developers?

Yes. The plugin offers several filters and actions for developers to extend its functionality:

Filters:

  • cleverspr_carousel_query_args (filter): Modify product query args before product lookup. Receives $args, $carousel_id, and $meta.
  • cleverspr_carousel_template_path (filter): Override template relative path inside templates/.
  • cleverspr_carousel_css_vars (filter): Adjust per-carousel CSS variables before inline output. Receives $vars, $carousel_id, $settings, and $vars_map.
  • cleverspr_carousel/cache_ttl (filter): Control the TTL of the transient cache for rendered carousel HTML.
  • cleverspr_carousel/settings (filter): Modify carousel settings before rendering.
  • cleverspr_carousel/card_template_relpath (filter): Override card template path.
  • cleverspr_carousel/slider_data_attributes (filter): Modify slider data attributes.

Actions:

  • cleverspr_carousel_before_render (action): Fires right before carousel template rendering. Receives $carousel_id, $settings, and $products.
  • cleverspr_carousel_after_render (action): Fires right after carousel template rendering. Receives $carousel_id, $settings, and $products.

Examples:

`php

// Modify query to limit price range
add_filter( ‘cleverspr_carousel_query_args’, function( $args, $carousel_id, $meta ) {
$args[‘price_range’] = [ 20, 200 ];
return $args;
}, 10, 3 );

// Add custom CSS variables
add_filter( ‘cleverspr_carousel_css_vars’, function( $vars, $carousel_id, $settings, $vars_map ) {
$vars[] = ‘–clevers-margen-cards: 24px;’;
return $vars;
}, 10, 4 );

// Track carousel renders
add_action( ‘cleverspr_carousel_before_render’, function( $carousel_id, $settings, $products ) {
do_action( ‘mi_tracking/carousel_render_start’, $carousel_id, count( $products ) );
}, 10, 3 );
`

Namespace variants such as cleverspr_carousel/query_args, cleverspr_carousel/before, and cleverspr_carousel/after are also available.

WP-CLI commands

When WP-CLI is available, the plugin registers a clevprca-carousel command namespace:

  • wp clevprca-carousel list [--preset=<n>] — print every carousel (id, title, status, preset, shortcode) as a table. Filter by preset with --preset.
  • wp clevprca-carousel flush-cache — delete all cleverspr_carousel_* cache transients and bump the global cache version so in-process renders rebuild. Use after imports or when prices/stock have changed but the cache has not expired yet.
  • wp clevprca-carousel render <id> [--file=<name>] — print the rendered HTML for a given carousel id to stdout, or write it into the plugin uploads directory. Handy for headless smoke tests and template debugging.

Examples:

`

wp clevprca-carousel list
wp clevprca-carousel list –preset=2
wp clevprca-carousel flush-cache
wp clevprca-carousel render 42 –file=carousel-42.html
`

These commands are loaded only when WP_CLI is defined, so there is no overhead in normal HTTP requests.

Resinsjes

D’r binne gjin resinsjes foar dizze plugin.

Meiwurkers & amp; Untwikkelders

“Clevers Product Carousel” is iepen boarne software. De folgjende minsken hawwe bydroegen oan dizze plugin.

Meiwurkers

Oersette “Clevers Product Carousel” yn jo taal.

Ynteressearre yn ûntwikkeling?

Blêdzje troch de koade , besjoch de SVN-repository , of abonnearje op it ûntwikkelingslogboek troch RSS .

Feroaringslog

1.4.0

  • Breaking change: the shortcode tag changed from [clevers_carousel] to [cleverspr_carousel], and the Gutenberg block namespace from clevers-product-carousel/carousel to cleverspr/carousel. Existing content referencing the old names must be updated. The CPT slug (clevers_carousel) and the post meta keys are unchanged, so existing carousel posts keep their settings.
  • WP-CLI render --file no longer writes to an arbitrary path. --file now takes a plain filename written inside wp-content/uploads/clevers-product-carousel/, resolved at runtime with wp_upload_dir(); path separators, .. and stream wrappers are rejected.
  • Renamed every plugin-owned global identifier from the shared clv / clevers prefixes to the unique clevprca prefix (functions, classes, constants, options, transients, post meta, script/style handles, nonces, AJAX actions, WP-CLI namespace).
  • Removed the function_exists() guards around the plugin’s own helper functions, which could cause a fatal error if another plugin loaded a same-named function first.

1.3.1

  • Removed Tested up to from the main plugin header (declared only in readme.txt per WordPress.org guidelines) and bumped it to 7.1.
  • Moved all admin inline <style>/<script> blocks to properly enqueued assets/admin.css and assets/admin.js files.
  • Moved the Brizy preview <style> injection in the renderer to wp_add_inline_style() so it ships through the standard stylesheet pipeline.
  • Wrapped shortcode and Gutenberg block render callbacks in wp_kses_post() to defend against untrusted content that may pass through the clevers_product_carousel/rendered_html filter.
  • Renamed internal CLV_* constants to CLEVPRCA_* to satisfy the prefix length requirement (4+ characters, distinct from common words).
  • Updated the Contributors field in readme.txt to the plugin owner (cleversdev).

1.3.0

  • Added WP-CLI commands: wp clevprca-carousel list, wp clevprca-carousel flush-cache, wp clevprca-carousel render <id>. Useful for staging environments, CI pipelines, and headless smoke tests.
  • Documented developer hooks (filters/actions) more clearly in the FAQ.
  • No new runtime dependencies; WP-CLI integration adds zero overhead when WP-CLI is not in use.

1.2.3

  • Enhanced Brizy editor integration.
  • Refined JSON import flow.
  • Improved frontend fallback behavior.
  • Added Gutenberg block support improvements.
  • Added queue-metrics observability fields (pending/processed/failed, avg time, last error) for the rendering pipeline.
  • Enhanced admin tools and management UX.

1.2.1

  • Added Gutenberg block for selecting saved carousels.
  • Improved admin UI (sorting, categories selector, shortcode box, preset preview).
  • Fixed filter combination logic for on-sale + featured products.
  • Expanded cache invalidation hooks for WooCommerce updates.
  • Accessibility and UX improvements for Slick carousel navigation.

1.1.2

  • Updated compatibility headers for the latest WordPress version.
  • Improved release packaging for WordPress.org-ready ZIP files.
  • Code quality fixes for Plugin Check / WordPress Coding Standards.

0.2.0

  • Added per-carousel color system (dynamic CSS variables).
  • Improved rendering with cache support.
  • Added theme template override support.
  • General code refactor.

0.1.0

  • Initial release with WooCommerce product carousel support.