Skip to content

Instantly share code, notes, and snippets.

@Crocoblock
Last active February 3, 2023 04:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Crocoblock/3ff6b0c806991ac6e303af4ad858781d to your computer and use it in GitHub Desktop.
Save Crocoblock/3ff6b0c806991ac6e303af4ad858781d to your computer and use it in GitHub Desktop.
JetEngine. Dynamic Field callback to get selected user data (display name, login, email etc) by given user ID
<?php
/**
* Add following code into funcitons.php file of your active theme or with any code snippets plugin
*/
add_filter( 'jet-engine/listings/allowed-callbacks', function( $callbacks ) {
$callbacks['my_jet_engine_get_user_data'] = __( 'Get user data by ID' );
return $callbacks;
} );
add_filter( 'jet-engine/listings/allowed-callbacks-args', function( $args ) {
$args['user_data_to_get'] = array(
'label' => __( 'User Data to get', 'jet-engine' ),
'type' => 'select',
'default' => 'display_name',
'options' => array(
'ID' => __( 'ID', 'jet-engine' ),
'user_login' => __( 'Login', 'jet-engine' ),
'user_nicename' => __( 'Nickname', 'jet-engine' ),
'user_email' => __( 'E-mail', 'jet-engine' ),
'user_url' => __( 'URL', 'jet-engine' ),
'user_registered' => __( 'Registration Date', 'jet-engine' ),
'display_name' => __( 'Display Name', 'jet-engine' ),
),
'condition' => array(
'dynamic_field_filter' => 'yes',
'filter_callback' => array( 'my_jet_engine_get_user_data' ),
),
);
return $args;
} );
add_filter( 'jet-engine/listing/dynamic-field/callback-args', function( $args, $callback, $settings ) {
if ( 'my_jet_engine_get_user_data' === $callback ) {
$args[] = ! empty( $settings['user_data_to_get'] ) ? $settings['user_data_to_get'] : 'display_name';
}
return $args;
}, 10, 3 );
function my_jet_engine_get_user_data( $user_id, $prop ) {
return jet_engine()->listings->data->get_prop( $prop, get_user_by( 'ID', $user_id ) );
}
@moxet
Copy link

moxet commented Feb 3, 2023

Thank you for sharing

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