JetEngine 3.9.0 Free Download — Nulled FAQ

JetEngine 3.9.0 for structured WordPress catalogs: custom fields, developer relations and native Gutenberg listings. Includes the GPLHub-sourced main ZIP, dated add-on bundle, real test evidence and a repeatable staging fixture.

Share
JetEngine v3.9.0 Free Download
Download buttons are at the bottom of this page.

Test record: 2026-10-16 · WordPress 7.1.3; PHP 8.4.26; MySQL 8.4.11; Twenty Twenty-Five 1.5; Gutenberg. Isolated lab with synthetic data. External HTTP, email, payments and analytics disabled. Main plugin tested; add-ons inventoried only. Saved query presets tested, no AJAX faceting claim.

JetEngine 3.9.0: a Gutenberg catalog built and tested

JetEngine is a WordPress plugin for building structured content with custom post types, fields, relationships and dynamic listings. It suits catalogs, directories and other sites where a standard post needs richer data and a reusable layout. This page combines the GPLHub-sourced JetEngine 3.9.0 download with a practical Gutenberg test and the exact limits of that test.

We tested JetEngine 3.9.0 by building a small developer-and-product catalog in a private WordPress installation. The final fixture contains four developers, nine synthetic products, a one-to-many relationship, seven saved queries and a Gutenberg product-card listing. Eighteen recorded assertions passed. Separate authenticated HTTP requests confirmed the pages rendered the expected card counts, including two empty states.

The exercise concentrates on the work a catalog actually needs: choosing records, reading custom fields, relating products to developers and deciding which labels to show. It also includes deliberately incomplete data. One product has no price metadata row, and one developer has no children. These cases make the result more informative than an activation-only check.

Native JetEngine Gutenberg catalog showing synthetic product cards and visibility badges
Own screenshot of the private test fixture, JetEngine 3.9.0. Full-page capture of the unfiltered query with nine synthetic products.

Recorded environment and test boundaries

Environment used on 16 October 2026
ComponentRecorded value
JetEngine3.9.0
WordPress7.1.3
PHP8.4.26
DatabaseMySQL 8.4.11
ThemeTwenty Twenty-Five 1.5
Editor and renderingNative Gutenberg blocks and JetEngine Listing Grid

The lab used a separate PHP runtime and database. Email delivery, payments, external HTTP and analytics were disabled. All products and developers are invented test records. We did not submit payments, contact demo destinations or send tracking events. The main package was activated; the seven add-on ZIPs in the separate bundle were inventoried, not functionally exercised here.

What changed in JetEngine 3.9.0

Crocoblock dates JetEngine 3.9.0 to 13 October 2026. Its published changelog highlights the following additions and interface changes:

  • Nested repeaters and additional dynamic tags for repeater content.
  • An Async Listings module and an Admin Pages module.
  • A File query option in Query Builder.
  • Listing interface changes for Bricks.
  • Interface improvements for advanced date fields and repeater subfields.

Start with two post types and explicit field names

Create Developers and Products in JetEngine, enable their editor and REST support for Gutenberg, and add product fields for version, price, support state, featured state and demo URL. The fixture uses lab_version, lab_price, lab_support, lab_featured and lab_demo. A developer has a region field. Keeping these keys consistent matters because listings, query clauses and visibility conditions refer to the same stored values.

  1. Create a one-to-many relation with Developers as the parent and Products as the child.
  2. Enable controls on both sides so the relationship can be inspected from either record.
  3. Create Aster Labs, Boreal Works and Cinder Studio, then assign products through the relation.
  4. Add Empty Works without any products, and Aster Missing Price without writing lab_price metadata.

The final relation stored four children for Aster Labs, three for Boreal Works, two for Cinder Studio and zero for Empty Works. Every product had exactly one parent. We checked both directions through JetEngine relation methods instead of assuming that a similarly named text field represented a real relationship.

JetEngine developer-to-product relation configuration in WordPress admin
Own screenshot of the configured one-to-many relationship. Product links are stored through JetEngine relation APIs.

Render a reusable product card with native Gutenberg blocks

The product card is a JetEngine Listing item whose view is Blocks. A core Group block holds native Dynamic Field blocks for the product title, price, version and support state. A page then uses JetEngine Listing Grid with that listing selected and Custom Query enabled. No custom shortcode or replacement query renderer supplies the product cards.

For the price field, we configured the native fallback text Price not set. A fallback affects presentation after a record has been selected; it does not create a missing metadata row or change which records a numeric query can return. That distinction is visible in the missing-price test below.

The screenshot layout uses a persisted block-theme header, footer and Additional CSS for readable spacing. The presentation changes do not supply product values or alter the query results. The catalog content remains editable as real Gutenberg blocks.

Test 1: saved queries filter and sort the real records

We saved separate Posts Query definitions in JetEngine Query Builder and selected them from the Gutenberg Listing Grid. The all-products query limits results to published Products and orders titles ascending. The support preset adds an equality clause for lab_support = active. The price preset orders lab_price as a numeric metadata value, descending.

Observed results from native queries and real HTTP rendering
QueryObserved result
All products, title A–Z9 cards
Support equals active6 cards
Numeric price, descending8 cards: 99, 79, 59, 49, 39, 29, 19, 9
Support equals expired0 cards and native empty message
Aster Labs related products4 cards
Empty Works related products0 cards and native empty message
Price metadata does not exist1 card: Aster Missing Price

The links above the lab listing select these saved query presets. They are useful for checking query behavior, but they are not an AJAX faceted-filter interface. We did not install or test JetSmartFilters, and the main JetEngine download should not be presented as proof that live faceting was exercised.

Native JetEngine saved query filtering products to active support
Own screenshot of the active-support preset. Six synthetic products match the configured metadata equality clause.
JetEngine product listing ordered by numeric price descending
Own screenshot of the numeric price preset. The eight priced records are returned; the intentionally missing price record is excluded.

Test 2: missing metadata behaves differently from a zero price

Aster Missing Price has no lab_price row. It appears in the unfiltered listing, where its Dynamic Field displays Price not set. A separate NOT EXISTS meta query returns exactly this product. The price-sorted query excludes it, while retaining all eight products that have stored numeric prices.

In this configuration, sorting by a named metadata key requires a matching price metadata row. The underlying WordPress query joins the price metadata before ordering its numeric value. A record with no matching row falls outside that result set. It is not silently treated as a product priced at zero. Adding a display fallback does not change the join.

Decide how a real catalog should handle this before launch. You may require a price for published items, display incomplete records in a separate queue, or deliberately design a query that includes missing values. Our test validates the observed exclusion and fallback; it does not claim that the chosen sort implements every possible missing-price policy.

Synthetic product without price metadata showing the native Price not set fallback
Own screenshot of the NOT EXISTS query. Exactly one product is returned, and its missing price is displayed with the native field fallback.

Test 3: an empty relationship must stay empty

The relationship presets use JetEngine's native Related Items macro in the dynamic Post In setting. The macro reads a developer ID from the lab_developer_id query parameter and returns that developer's child product IDs. Aster Labs returned four items. Empty Works returned none.

An empty inclusion list can be dangerous if a query implementation treats it as no restriction. In the installed package, the Related Items macro supplies PHP_INT_MAX when there are no related IDs. The resulting inclusion constraint matches no lab product. We checked the relation method, the saved query, the Gutenberg grid and the actual HTTP page: Empty Works showed zero cards and the configured native empty message.

During setup, our first selector name, lab_developer, collided with the registered custom-post-type query variable and caused a WordPress 404. We corrected our fixture to use lab_developer_id in the macro and navigation, then repeated both relationship requests over HTTPS. This was a fixture configuration mistake, not a demonstrated JetEngine defect.

Aster Labs products selected through the native Related Items macro
Own screenshot of the populated developer relation. Four product cards match Aster Labs.
Empty Works relationship preset displaying the native no-products message
Own screenshot after correcting the selector parameter. The developer has zero children, and the grid does not fall back to all products.

Test 4: three visibility rules across the actual card blocks

We enabled JetEngine's Dynamic Visibility module and attached conditions to ordinary Gutenberg paragraph blocks inside the listing. FEATURED is shown when lab_featured equals true. SUPPORT AVAILABLE is shown when lab_support equals active. DEMO AVAILABLE is shown when lab_demo contains a value. The conditions use the current listing object so each card reads its own product.

Visibility checks across all nine products
RuleVisibleHidden
Featured equals true36
Support equals active63
Demo field is populated54

The checks rendered the real Gutenberg card blocks for each product and recorded whether each label appeared. Positive and negative records were included for every rule. These labels describe display behavior only. Hiding a block is not an authorization policy and does not protect the underlying record, file or endpoint from access.

Repeat the fixture in a disposable staging site

The accompanying fixture contains PHP seed and verification scripts, normalized JetEngine configuration exports, a generated manifest, the recorded result JSON and a README. The scripts use JetEngine data APIs and generate installation-specific IDs. The JSON files document the fixture; they are not advertised as a vendor one-click import format.

  1. Install and activate JetEngine 3.9.0 in a disposable WordPress site, with a file and database backup outside the reset scope.
  2. Set WP_ENVIRONMENT_TYPE explicitly to local, development or staging. The fixture refuses the production environment.
  3. Run 01-schema.php, 02-seed.php and 05-edge-fixtures.php in separate WP-CLI invocations, then run 03-pages-and-test.php to produce new results and page URLs.
  4. Optionally run 04-presentation.php for the clean lab header, footer and spacing; it changes only the disposable site's presentation.
  5. Check the returned frontend URLs as well as the JSON assertions, then restore the pre-test backup when the exercise is finished.
Run the supplied scripts from their extracted directory
wp --path=/path/to/staging eval-file 01-schema.php
wp --path=/path/to/staging eval-file 02-seed.php
wp --path=/path/to/staging eval-file 05-edge-fixtures.php
wp --path=/path/to/staging eval-file 03-pages-and-test.php > results-new-run.json

Use the page URLs from your own new run. Do not reuse our numeric object IDs. No credentials, plugin ZIPs or database backup are included in the fixture archive.

Main download, add-on bundle and package provenance

The main download is the GPLHub-sourced JetEngine 3.9.0 ZIP tested here. The separate All Add-ons archive contains seven individual add-on ZIPs and an inventory from the GPLHub package snapshot dated 16 October 2026. Extract the outer bundle first; it is not a single plugin to upload into WordPress. This dated bundle is not a claim to contain every official add-on ever released.

The supplied main archive's SHA-256 is recorded below so the tested bytes can be identified. Successful activation and functional checks do not prove that a third-party archive is identical to a vendor download. No trusted same-version vendor ZIP was used for a byte-for-byte comparison, so the package modification status remains unknown.

SHA-256 of the tested main ZIP
41e369aba3d79e377eb68859e5a00b5b8c907aa09a238ad34fd3fae150cedbeb

When ordinary WordPress posts are enough

For a small editorial site with titles, text, images and categories, start with WordPress posts and core Query blocks. Adding a relationship model and multiple query definitions brings configuration work that a simple blog may not need.

JetEngine becomes more useful when records need consistent fields, one developer can own several products, editors need relationship controls, or the same data must appear in several dynamic views. A custom-fields plugin with a theme implementation is another possible approach, but that is a different workflow. This article does not benchmark competing products or claim JetEngine is necessary for every WordPress site.

Practical download and setup FAQ

What does JetEngine nulled mean?

“Nulled” usually describes software whose activation or licence checks have been removed or altered; the word alone does not determine whether a particular use is lawful. GPL-covered code can be studied, modified and redistributed subject to its licence conditions, but this does not grant access to a developer’s account, hosted services, updates or support. We discuss the term here to answer a common search question; the download details separately identify the package source and tested version. Any plugin or theme obtained through an unverified third party can contain unwanted changes or malicious code, whether or not it is labelled “nulled”. Before installing it, you can ask ChatGPT or Claude Code to inspect the extracted source for suspicious behaviour without executing it or sharing credentials. Treat that review as an additional check: AI can miss harmful code or flag harmless code, and a clean result is not a security guarantee.

Exact download record

Source: GPLHub. Package version 3.9.0. Main ZIP: 6703713 bytes. SHA-256:

41e369aba3d79e377eb68859e5a00b5b8c907aa09a238ad34fd3fae150cedbeb

All Addons ZIP: 376715 bytes. SHA-256:

0fa534bc8f5bbf6762ba1c1bf3d4ed73cb55f541a158961091f0336d8b643912

Third-party sourced package. No trusted same-version vendor ZIP baseline was available; activation and functional tests do not establish byte-for-byte vendor authenticity.

Included add-ons and dependencies (7 archives)
  • JetEngine - Get attachment file link by ID 1.1.3 (addon)
  • JetEngine - Custom visibility conditions 1.1.2 (addon)
  • JetEngine - dynamic charts builder 1.1.0 (addon)
  • JetEngine - dynamic tables builder 1.2.0 (addon)
  • JetEngine - Layout Switcher 1.0.1 (addon)
  • JetEngine Post Expiration Period Module 1.1.2 (addon)
  • JetEngine - Trim string callback 1.0.3 (addon)

Free package downloads

JetEngine v3.9.0 DownloadJetEngine All Addons Download

All addons included in the GPLHub package on 2026-10-16, with duplicate and superseded copies removed. This is a dated GPLHub snapshot, not a claim to include every official addon ever released. Extract the outer All Addons archive first, then install only the individual plugin ZIPs you need.

View the complete bundle inventory