Add-On for Discord and Gravity Forms

The Add-On for Discord and Gravity Forms plugin has a useful hook for developers to use to further enhance its functionality.

gf_discord_embeds

TYPE ⇢ Filter

This filter allows developers to modify or override the Discord embed payload sent when a Gravity Form entry is submitted. The embed structure follows Discord's embed object format and can be used to customize titles, descriptions, fields, colors, images, and more.

Structure of $embeds:

PHP
$embeds = [
    [
        'type'        => 'rich',
        'color'       => hexdec( $color ), // Embed color as decimal
        'author'      => [
            'name' => $site_name,
            'url'  => home_url()
        ],
        'title'       => $title,
        'url'         => admin_url( 'admin.php?page=gf_entries&view=entry&id='.$form['id'].'&lid='.$entry['id'] ),
        'description' => $message,
        'fields'      => $facts, // Each fact is: ['name' => 'Label', 'value' => 'Value', 'inline' => bool]
        'image'       => [
            'url' => '' // Optional large image
        ],
        'thumbnail'   => [
            'url' => $image // Site logo or fallback image
        ],
        'footer'      => [ // Only if footer is enabled
            'text'     => $footer_text,
            'icon_url' => GFDISC_PLUGIN_DIR.'img/wordpress-logo.png'
        ],
        'timestamp'   => 'ISO8601 string', // Optional, shown with footer
    ]
]

Example Usage

PHP
/**
 * Change embed color based on the form ID.
 *
 * @param array $embeds The current array of Discord embed objects.
 * @param array $form   The Gravity Forms form object.
 * @param array $entry  The Gravity Forms entry object.
 *
 * @return array Modified array of embed objects.
 */
add_filter( 'gf_discord_embeds', function( $embeds, $form, $entry ) {
    $form_id = (int) $form['id'];

    // Get the current color if set, otherwise default to blue
    $current_color = isset( $embeds[0][ 'color' ] ) ? $embeds[0][ 'color' ] : hexdec( '0000FF' );

    // Choose a color based on form ID
    switch ( $form_id ) {
        case 1:
            $embeds[0][ 'color' ] = hexdec( '00FF00' ); // Bright green
            break;
        case 2:
            $embeds[0][ 'color' ] = hexdec( 'FF0000' ); // Red
            break;
        default:
            $embeds[0][ 'color' ] = $current_color; // Keep the default color or the existing color
            break;
    }

    return $embeds;
}, 10, 3 );

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.