Skip to main content

Rentiva v4.33.1 — Search Polish & Vendor Name Fix

· 3 min read
MaxHandMade
Maintainer

A focused patch bundling three fixes around vehicle admin and the Featured Vehicles surface — the Lifecycle meta box now identifies the vendor by name, the Featured Vehicles slider stops flickering on short lists, and Featured Vehicles gains a "View All" link in parity with Vehicles Grid.

Why this release exists

Three small frictions had been piling up:

  1. The Lifecycle meta box on the vehicle edit screen rendered the vendor's reliability score (e.g. Vendor Score: 100/100 — Excellent) without saying which vendor the score belonged to. Admins had to cross-reference the users list to find out.
  2. The Featured Vehicles slider used Swiper's loop: true unconditionally. On short lists (slide count ≤ columns × 2) Swiper's loop algorithm doesn't have enough duplicate slides to cycle, and the slider rotates through blank frames.
  3. Vehicles Grid had a View All link below the grid (view_all_url / view_all_text attributes); Featured Vehicles did not. Two shortcodes that should behave consistently were not.

This release fixes all three.

Changes

Fixed: Lifecycle meta box now identifies the vendor by name

src/Admin/Vehicle/Meta/LifecycleMetaBox.php now resolves the vendor from $post->post_author and renders a Vendor: row above the reliability score:

Status: Active
Started: 30 Mar 2026
Expires: 28 Jun 2026 (60 days)

────────────────────────
Vendor: Acme Filo Kiralama
Vendor Score: 100/100 — Excellent

Resolution chain: $user->display_name$user->user_login (fallback when display name is empty). The vendor row is never blank for a non-zero post_author.

assets/js/frontend/featured-vehicles.js now counts .swiper-slide elements on the page before initializing Swiper, and only enables loop: true when there are more slides than columns × 2:

const slideCount = container.find('.swiper-slide').length;
const enableLoop = slideCount > columns * 2;

new Swiper(container[0], {
loop: enableLoop,
// ...
});

Few slides = plain swipe (no loop, no flicker). Many slides = infinite loop (the original behavior). Automatic; no user-facing setting.

Parity with Vehicles Grid. Three surfaces:

Shortcode:

[rentiva_featured_vehicles limit="6" view_all_url="/vehicles/" view_all_text="See All Cars"]

Elementor widget: Two new fields in the Carousel Options panel (View All URL and View All Button Text).

Gutenberg block: Two new TextControls in Inspector Controls (visible after a URL is entered).

The link renders in the template footer when view_all_url is non-empty. Default text is "View All Vehicles" (translatable).

Tests

  • 822 → 824 PHPUnit (+2: lifecycle_meta_box_renders_vendor_display_name, lifecycle_meta_box_falls_back_to_user_login_when_display_name_is_empty)
  • FeaturedVehiclesDefaultsParityTest extended with two new mappings (view_all_url, view_all_text)
  • PHPCS: 0 errors across the six changed files
  • i18n: 2 new strings (Vendor:, Adds a "View All" link below the carousel...) with Turkish translations; existing View All Vehicles / View All URL / View All Button Text translations reused from Vehicles Grid via msgmerge (fuzzy=0)

Compatibility

No license-server upgrade required. Drop-in replacement for v4.33.0.