get_db

📅 Published on

📝 Last updated

Documentation

»

Functions

»

get_db

Returns a Groundhogg database table instance by its key name. Each table provides query(), add(), update(), delete(), and count() methods for direct database access without writing raw SQL. Common table keys include 'contacts', 'tags', 'tag_relationships', 'events', 'event_queue', 'activity', 'emails', 'funnels', 'broadcasts', 'submissions', 'notes', 'tasks', and 'permissions_keys'.

Parameters

ParameterTypeDescription
$tablestringThe table key. Passing an empty string returns the DB\Manager.

Return value

DB\Table|DB\Manager — A specific table instance, or the DB\Manager if $table is empty.

Usage

// Query the contacts table
$rows = \Groundhogg\get_db( 'contacts' )->query( [ 'owner_id' => 1 ] );

// Count activity for a contact
$count = \Groundhogg\get_db( 'activity' )->count( [
    'contact_id'    => $contact->get_id(),
    'activity_type' => 'email_opened',
] );

Example

Here’s a pseudo code example for a hypothetical reporting integration.

/**
 * Get all contacts who have opened at least one email in the last 30 days.
 *
 * @return \Groundhogg\Contact[]
 */
function my_plugin_get_recently_active_contacts() {

    $since = date( 'Y-m-d H:i:s', strtotime( '-30 days' ) );

    $rows = \Groundhogg\get_db( 'activity' )->query( [
        'activity_type' => 'email_opened',
        'after'         => $since,
    ] );

    $contact_ids = array_unique( wp_list_pluck( $rows, 'contact_id' ) );

    return array_filter( array_map( function( $id ) {
        return \Groundhogg\get_contactdata( $id );
    }, $contact_ids ) );
}

Was this helpful?

Let us know if this document answered your question. That’s the only way we can improve.