Skip to content

Instantly share code, notes, and snippets.

@MjHead
Last active July 22, 2025 20:41
Show Gist options
  • Save MjHead/49ebe7ecc20bff9aaf8516417ed27c38 to your computer and use it in GitHub Desktop.
Save MjHead/49ebe7ecc20bff9aaf8516417ed27c38 to your computer and use it in GitHub Desktop.
Get option values for JetEngine options pages inside the PHP code
<?php
/**
* Method 1
* Can be used for: Any storage type
*
* page-slug - replace this with your Option Page slug
* option-name - replace this with your option Name/ID
*/
$value = jet_engine()->listings->data->get_option( 'page-slug::option-name' );
/**
* Method 2
* Can be used for: Any storage type
*
* page-slug - replace this with your Option Page slug
* option-name - replace this with your option Name/ID
*/
$page = jet_engine()->options_pages->registered_pages['page-slug'];
$value = $page->get( 'option-name' );
/**
* Method 3
* Can be used for: Default storage type
*
* page-slug - replace this with your Option Page slug
* option-name - replace this with your option Name/ID
*/
$all_options = get_option( 'page-slug', array() );
$value = isset( $all_options['option-name'] ) ? $all_options['option-name'] : false;
/**
* Method 4
* Can be used for: Separate storage type + `Add prefix for separate options` is DISABLED
*
* option-name - replace this with your option Name/ID
*/
$value = get_option( 'option-name' );
/**
* Method 5
* Can be used for: Separate storage type + `Add prefix for separate options` is ENABLED
*
* page-slug - replace this with your Option Page slug
* option-name - replace this with your option Name/ID
*/
$value = get_option( 'page-slug_option-name' );
@Laichunw
Copy link

Laichunw commented Mar 9, 2023

@jwamsterdam @Galibri
There is some update for those who want to use php to update options.
The options inside jetengine is actually save as options in the wp_option table. So the typical get_option and update_option will do.
And the mutiple field value is saved as array.
So let say you have a option page named with slug "dining-certificate-options_copy" and the field slug is "certificate-number"
Just simply:

// getting the whole option array from wp_option
$dinning_cert_option = get_option('dining-certificate-options_copy');
//Only change the value of a item in the array
$dinning_cert_option['certificate-number'] = ' anything';
// simply update the option 
update_option('dining-certificate-options_copy', $dinning_cert_option);	

@ihslimn
Copy link

ihslimn commented Jan 29, 2024

Hooks are:

jet-engine/options-pages/after-save
jet-engine/options-pages/after-save/PAGE_SLUG
jet-engine/options-pages/updated
jet-engine/options-pages/updated/PAGE_SLUG

The only argument passed to a hook is an instance of Jet_Engine_Options_Page_Factory (\jet-engine\includes\components\options-pages\options-page.php)

@nextab
Copy link

nextab commented Sep 8, 2024

I was defining a number of modules for an overview page and then I wanted to render the modules dynamically via Ajax on click. This did not work with the jetengine object as it wasn't available during the "init" or "enqueue_scripts" action hooks.
Method 3 was the solution; I simply got the option values right out of the WordPress database.
Hope this info helps somebody else in the same situation.

@ihslimn
Copy link

ihslimn commented Dec 20, 2024

@nextab

This did not work with the jetengine object as it wasn't available during the "init" or "enqueue_scripts" action hooks.

it is not available until 'init' with priority of 12 or something like that, just try calling it a bit later

@nextab
Copy link

nextab commented Dec 21, 2024

it is not available until 'init' with priority of 12 or something like that, just try calling it a bit later

Thank you for pointing this out. I'm sure this can come in handy at some point in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment