AboutBuzz Stories Embed allows you to easily embed video stories and reviews from
AboutBuzz.com into your WordPress site. The plugin provides a responsive carousel display with lazy loading for optimal performance.
Features
- Responsive carousel display
- Lazy loading for better performance
- Mobile-optimized video playback
- Like functionality for user engagement
- Secure API integration
- Rate limiting to prevent abuse
- Caching for improved performance
Usage
- Install and activate the plugin
- Go to Settings > AboutBuzz Activation
- Enter your secret code provided by AboutBuzz
- Use the shortcode
[aboutbuzz_reviews code="YOUR_CODE"] in your posts or pages
Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
- Valid AboutBuzz secret code
2.0.1
Privacy hardening. Reduces the surface area for personal data from the AboutBuzz API to land on the client site.
- Response caching now holds a sanitized array instead of the raw API body. The
aboutbuzz_stories_bycode_<md5> transient previously stored the full JSON response body as a string, meaning any fields the server returned (including ones this plugin does not render) would sit in wp_options for up to 5 minutes per activation code. The transient now stores only the allowlisted $sanitized_posts array (ID, rating, vote_count, watermark_video, product_source, brand, and the video URL) that the template actually consumes. Extra server-returned fields are dropped before caching.
- Removed the unused
post_title field from the sanitized story array. It was being copied from the API response but never rendered anywhere in the template. Since post_title on the AboutBuzz side can contain reviewer names, stripping it here removes that field from the client's in-memory and cached representation of each story.
- Migration guard for the legacy cache format. Existing transient entries (stored as JSON strings by earlier builds) are discarded on first read after upgrade; the next render repopulates the cache in the new array format. No manual cache flush required.
- 5-minute cache TTL and the
?abz_nocache=1 admin bypass are unchanged.
- Removed per-review title interpolation from video
aria-label and alt strings; accessibility labels are now generic ("Predvajaj video oceno" / "Predogled video ocene"). Translations (.pot, sl_SI, en_US) updated to match the new msgids.
2.0.0
Major release. Card design redesigned to match
aboutbuzz.com homepage, CSS architecture moved to
@scope for isolation, response caching added, new Product Source badges, admin diagnostics for error paths. Read "Breaking changes" below before upgrading if you maintain brand-site custom CSS targeting the widget.
- Product Source Badges:
- "Verified Purchase" and "Verified Tester" overlay badges shown at the bottom-left of each video card, driven by the
product_source ACF field returned by the AboutBuzz API.
- Badge assets (
badge-verified-purchase.png, badge-verified-tester.png) are bundled in the plugin (assets/icons/) — no external network dependency.
- Badge persists while the video is playing (it's a sibling of the placeholder, not inside it).
- Card Design Parity with aboutbuzz.com homepage:
- Rating row always shows exactly 5 stars: first N filled gold (
#FFB600), remaining (5 − N) as gray outlined stars (#C7C7C7). Inline SVG so fill and stroke differ per star without extra assets.
- Verified-row default text changed from Slovenian "Ocena testiranega izdelka" to English "Verified product review" (still translatable; Slovenian preserved via
sl_SI catalog).
- New play-button icon (
play-btn.svg) replacing the previous play-white.svg.
- Card background, border-radius, padding, and video aspect aligned via CSS custom properties.
- Single-Row Carousel (always):
- Videos always render as a single horizontal row with scroll-snap. Previously only kicked in at 4+ videos — now applies to every count.
- Mobile viewport (≤600px): card is 58% of viewport width so the neighboring card peeks on each side, making the swipe affordance obvious.
- Grid uses
scroll-padding-inline so the first and last cards snap-center properly.
- Video wrapper on mobile uses
aspect-ratio: 9 / 16 for proper portrait framing regardless of card width.
- CSS Isolation via
@scope:
- All widget styles wrapped in
@scope (.aboutbuzz-reviews-host) { ... } — selectors are confined to the widget subtree.
:scope { all: revert-layer } resets inherited theme bleed-in (fonts, colors, line-heights) at the widget boundary.
- CSS custom properties exposed for theming:
--aboutbuzz-card-bg, --aboutbuzz-text, --aboutbuzz-muted, --aboutbuzz-accent, --aboutbuzz-star-filled, --aboutbuzz-star-empty, --aboutbuzz-radius, --aboutbuzz-video-height.
- New host class
aboutbuzz-reviews-host on the widget wrapper. New helper classes (ab-video-card, ab-video, ab-info-row, ab-source-badge) added alongside existing aboutbutzz_* classes; old class names preserved for backward compatibility.
- A small number of
!important declarations remain targeted (badge sizing, heart size, like-wrapper alignment, mobile card width) specifically to resist aggressive brand-theme overrides.
- Response Caching:
- Successful API responses cached per activation code for 5 minutes via
aboutbuzz_stories_bycode_<md5> transient. High-traffic brand pages make one API call per 5-minute window regardless of visitor count.
- Error responses (401, 403, 429, 500, network errors) are NEVER cached, so subscription or connectivity changes take effect immediately.
- Rate-Limit Scoping Fix:
- Per-visitor rate limit now counts only actual HTTP calls (cache misses), not every shortcode render.
- Threshold raised from 20 to 60 uncached requests/hour as abuse protection. With caching active, legitimate visitors effectively never encounter it.
- Admin Cache Bypass:
- Logged-in admins can append
?abz_nocache=1 to any URL to force a fresh API call for that request, useful for verifying back-end changes without waiting for the 5-minute TTL.
- Admin Diagnostics:
- Rate-limit, HTTP error, network error, and invalid-JSON paths now show a visible yellow info box to admins (
manage_options) while remaining silent for public visitors. Previously these either leaked a red error box to all visitors or rendered silently blank with no explanation.
- Version-Constant Hygiene:
- New
ABOUTBUZZ_EMBED_VERSION constant drives enqueue cache-busting and API User-Agent headers. Single-point version bumps going forward.
- Accessibility:
- Star row has an
aria-label reporting the numeric rating out of 5.
- Inline star SVGs marked
aria-hidden="true" so screen readers announce the rating once via the label, not five times per card.
- Decorative check icon
alt emptied; adjacent text carries the meaning.
- Translations:
.pot, en_US.po, sl_SI.po updated with new verified-row string and a pluralised star-count label. .mo files recompiled.
Breaking changes / compatibility notes:
- Brand CSS that relied on the old layout (1–3 videos rendered as a wrapping row, 4+ as a carousel) will see the carousel mode on every card count. The old wrapping mode is gone.
- The
product_source ACF field must be populated on each story on aboutbuzz.com for badges to appear. Stories with an empty or unrecognised value render no badge (correct failure mode).
- Brand-site custom CSS written against class names the plugin never emits (e.g.
.playbutton, .heart-icon, .vote-button-overlay, .vote-count, .voting, .video-preview) will continue to do nothing. Target the classes the plugin actually emits (see the class reference above).
- If a brand theme forces
.ab-info-row { display: grid } via its own !important or layer, the flex-based stars/heart row layout may break. Remove the conflicting rule from the brand's site CSS, or rely on the plugin's layout as shipped.
1.9.3
- Lazy Loading Compatibility Fix:
- Fixed first thumbnail image not displaying on sites with lazy loading plugins
- Added
data-no-lazy, data-skip-lazy attributes and skip-lazy, no-lazyload classes to first image
- Prevents third-party lazy loaders (WP Rocket, LiteSpeed, etc.) from breaking the first thumbnail
1.9.2
1.9.1
- Internationalization (i18n) Support:
- Added full WordPress translation support
- All user-facing strings are now translatable
- Included translation files for Slovenian (sl_SI) and English (en_US)
- Added .pot template file for creating additional translations
- Accessibility Improvements:
- Added translatable ARIA labels for video playback buttons
- Improved alt text for thumbnails with dynamic product names
- Enhanced screen reader support for loading states
- Code Quality:
- Improved code organization and documentation
- Added translator comments for strings with placeholders
1.9.0
- Shortcode Update: Changed from
[aboutbuzz_smart_stories] to [aboutbuzz_reviews] for better naming
- Simplified Parameters: Shortcode now only accepts
code parameter, auto-detects brand
- Cache Clearing: Added automatic cache clearing for validation to prevent stale data
- Documentation Update: Updated all documentation to reflect new shortcode usage
1.8.2
- Removed problematic CSS reset (all: unset) that was causing theme issues
1.8.1
- Release version 1.8.1 with assets fix
1.8.0
- Design & Visual Improvements:
- Complete visual redesign with modern layout and styling
- Updated color scheme for better visual appeal
- educed video size for improved layout balance
- Enhanced spacing with optimized paddings and margins
- Modern box design with improved visual hierarchy
- Like System Enhancements:
- Fixed like button visual feedback - yellow heart now displays correctly for already liked posts
- Improved like animation with smooth transitions
- Updated heart icons: yellow for liked posts, gray outline for unliked posts
- Enhanced visual states for better user experience
- Typography Updates:
- Replaced Font Awesome with custom Nunito Sans font
- Added proper font-face declaration for custom font loading
- Implemented font inheritance system for consistent typography
- Improved font loading performance with font-display: swap
- Navigation Improvements:
- Added new SVG arrow icons for carousel navigation
- Implemented responsive arrow behavior: visible on mobile, hidden on desktop
- Updated arrow positioning and sizing for better touch targets
- Enhanced arrow hover effects and visual feedback
- Technical Improvements:
- Optimized CSS structure with better specificity
- Improved mobile responsiveness across all components
- Enhanced accessibility features for navigation elements
- Better performance with optimized asset loading
- Code Quality:
- Cleaner CSS architecture with improved maintainability
- Better organization of styles and components
- Responsive design
- Improved code documentation and structure
1.7.9
- Fixed heart icon styling for like buttons - now displays red with proper opacity
- Improved like button functionality with proper visual feedback
- Enhanced heart display: 0.5 opacity when not liked, full opacity when liked
- Removed conflicting CSS hover effects that interfered with heart visibility
1.7.8
- Added "Oddaj video mnenje" link to upload video reviews
- Improved link styling and user experience
- Enhanced navigation with centered call-to-action
1.7.7
- MAJOR FIXES: Completely resolved all WordPress.org compliance issues
- Fixed carousel functionality with proper flexbox implementation
- Added complete video playback support with play button functionality
- Removed ALL inline styles and moved to proper CSS classes
- Implemented proper AJAX handling for like buttons
- Added comprehensive JavaScript event handling for all interactive elements
- Fixed background image loading via data attributes instead of inline styles
- Enhanced error handling and user feedback
- Improved mobile and desktop responsiveness
- Added proper CORS and nonce security
- Performance optimizations and code cleanup
- All buttons and interactions now work correctly
- No 404 errors - all assets properly enqueued
- Full WordPress.org compliance achieved
1.7.6
- Fixed WordPress.org compliance issues
- Moved inline JavaScript and CSS to separate files with proper enqueuing
- Updated shortcode from [smart_stories] to [aboutbuzz_smart_stories] for better namespacing
- Renamed shortcode function to use proper aboutbuzz_ prefix
- Added comprehensive external services documentation
- Enhanced security and input validation
- Improved error handling
- Better caching system
- Fixed function naming conflicts
1.7.5
- Fixed like button functionality
- Improved mobile centering
- Enhanced video loading
- Better error handling
- Improved caching system
1.7.4
- Added responsive design improvements
- Fixed video loading issues
- Enhanced security measures
1.7.3
- Initial carousel functionality
- Added like button feature
- Improved API integration
1.7.2
- Bug fixes and improvements
- Better error handling
1.7.1
- Initial release
- Basic shortcode functionality
- API integration