'field', 'type' => 'select', 'label' => __('Field', 'zadex'), 'default' => 'display_name', 'options' => [ ['value' => 'display_name', 'label' => __('Display name', 'zadex')], ['value' => 'first_name', 'label' => __('First name', 'zadex')], ['value' => 'last_name', 'label' => __('Last name', 'zadex')], ['value' => 'nickname', 'label' => __('Nickname', 'zadex')], ['value' => 'user_email', 'label' => __('Email', 'zadex')], ['value' => 'user_login', 'label' => __('Username', 'zadex')], ['value' => 'description', 'label' => __('Biography', 'zadex')], ['value' => 'ID', 'label' => __('User ID', 'zadex')], ['value' => 'avatar', 'label' => __('Avatar', 'zadex')], ]], ]; } public function render(array $settings, Context $ctx) { if ($ctx->user_id <= 0) { return ''; } $field = in_array($settings['field'] ?? 'display_name', self::FIELDS, true) ? $settings['field'] : 'display_name'; if ($field === 'ID') { return $ctx->user_id; } if ($field === 'avatar') { return ['id' => 0, 'url' => (string) get_avatar_url($ctx->user_id, ['size' => 192]), 'alt' => '']; } return (string) get_the_author_meta($field, $ctx->user_id); } }