export const headerImg = '/docs/images/integrations/integration-wordpress.webp'
export const keyGenImg = '/docs/images/integrations/integrations-generate-keys.webp'
export const wordpressKeysImg = '/docs/images/integrations/wordpress-keys.webp'
export const wordpressTrackingImg = '/docs/images/integrations/wordpress-tracking-enable.webp'
export const eventTrackingImg = '/docs/images/integrations/events-views.webp'
export const ltvImg = '/docs/images/integrations/payment-ltv.webp'
export const subscriberListImg = '/docs/images/integrations/subscriber-list.webp'

export const connectionDialogImg = '/docs/images/integrations/wp-connection-dialog.webp'
export const trackingLoggingImg = '/docs/images/integrations/wp-tracking-logging.webp'
export const transactionalEmailImg = '/docs/images/integrations/wp-transactional-emails.webp'
export const integrationStatusImg = '/docs/images/integrations/wp-integration-status.webp'

export const bentoLogoImg = '/docs/images/logos/bento-text-logo.svg'
export const wpLogoImg = '/docs/images/logos/wordpress.svg'


export const headerBackground = '/docs/images/headers/header_background.webp';


# Bento WordPress Integration

Bento plugins track events, update data, and record LTV, storing everything in your Bento account for easy analysis. 


## Overview

The Bento WordPress Plugin offers two core functionalities:
- **Event Tracking**: Automatically track key events across popular WordPress plugins
- **Data Management**: Update user data and record lifetime value (LTV) metrics


The plugin supports multiple popular WordPress platforms and plugins including:
- [WooCommerce and WooCommerce Subscriptions](https://woocommerce.com)
- [LearnDash](https://www.learndash.com)
- [Easy Digital Downloads](https://easydigitaldownloads.com)
- [Elementor Forms](https://elementor.com/)
- [WPForms](https://wpforms.com)
- [Bricks Forms](https://bricksbuilder.io/forms/) - [Bricksbuilder Bento Guide](/docs/integrations/bricksbuilder)
- [ThriveLeads](https://automatorwp.com/add-ons/thrive-leads/)
- [SureCart](https://surecart.com)

## Configuration


> ⚠️ **Warning**
> Always install and test the Bento plugin on a development or staging site before using it in production. This ensures compatibility and helps identify potential conflicts.


### Requirements

1. Active Bento account with API keys
2. Latest version of WordPress
3. Any supported integration plugin

### Installation Steps


  
  
    Download the Plugin from github [here](https://github.com/bentonow/bento-wordpress-sdk/archive/refs/heads/master.zip) as a `zip`
  

  
  
    Install the plugin by uploading the downloaded `zip` file.
  

  
  
    Generate your Bento API keys if you have not from your [teams screen](https://app.bentonow.com/account/teams)
    
  

  
  
    
      
        Enter the Bento keys into the plugin. Copy and paste as you go.

        Once you have entered your keys, click the `Connect To Bento` button to save your settings.

        If the connection is successful, you will see a green success message and the rest of the settings will be visible.

        You are of course welcome to configure the connection settings later on, and browse some of the plugin features.
      
      
        
      
    
  

  
  
    
    If you would like to log user activity such as page views you can enable Site Tracking.
    This will inject a simple js script into your wordpress site.

    Some additional logging options are available, such as turning on debugging for the plugin
    that will log a debug stream to the wordpress debug.log file. Please be aware that this can be
    quite verbose and you should consider purging the log after you are done. <b>Not recommended</b> to
    leave on in production.

    You can enable email logging, which is useful for debugging and testing when using Bento transactional emails.
    This feature allows you to see what emails are being sent and provides insights if you have questions
    about email interactions. However, it's <b>not recommended</b> to leave this feature on in production.
    The emails will be visible under the mail logs menu item, and you can clear them anytime using the `Clear Logs` button.
  

  
  
    
      
        Transactional Emails are supported by Bento and is designed for low volume transactional emails.
        <b>It is not designed for high volume/frequent bulk sending.</b>

        Once you enable it you will need to configure
        the Bento Author in the drop down menu after enabling it. After you have done this, you are ready to send.

        The final option: sending transactional emails to unsubscribed users.
        Proceed with caution—if recipients label your messages as spam, your <b>sending reputation is impacted</b>.
      
      
        
      
    
  


### Integration Status

The Bento WordPress plugin now supports displaying the status of integrations on the plugin settings page.
When the WordPress plugin detects that a supported plugin is installed, a green tick will appear
next to the plugin name. If the plugin is not installed or not supported, the plugin name will be
displayed in gray.


### Caching Configuration

Bento's script is personalized and dynamic, changing on every page load to power on-page personalization. When using caching plugins like WP Rocket or SuperCache, you must:

- Exclude the custom Bento.js script from caching
- Ensure dynamic content is properly handled

## Event Tracking

### WooCommerce Events

The following WooCommerce Events are triggered and sent to Bento.

| Event Name        | Description                                                                 |
|-------------------|-----------------------------------------------------------------------------|
| `$OrderPlaced`    | Triggered when an order is placed. Updates person's LTV with order total    |
| `$OrderRefunded`  | Triggered on full/partial refund. Deducts refunded amount from person's LTV |
| `$OrderCancelled` | Triggered when order status changes to "cancelled"                          |
| `$OrderShipped`   | Triggered when order status changes to "completed"                          |

### WooCommerce Subscriptions Events


| Event Name                | Description                                     |
|---------------------------|-------------------------------------------------|
| `$SubscriptionCreated`    | New subscription created (any status)           |
| `$SubscriptionActive`     | Subscription becomes active (e.g., after trial) |
| `$SubscriptionCancelled`  | Subscription cancelled by admin                 |
| `$SubscriptionExpired`    | Subscription reaches end of term                |
| `$SubscriptionOnHold`     | Subscription status changes to "on-hold"        |
| `$SubscriptionTrialEnded` | Trial period ends                               |
| `$SubscriptionRenewed`    | Renewal payment processed                       |


### Sure Cart

| Event Name           | Description                                                                                           |
|----------------------|-------------------------------------------------------------------------------------------------------|
| `$CheckoutConfirmed` | Triggered when a checkout is completed (paid). Contains all metadata from the checkout and user info. |


### Easy Digital Downloads
| Event Name            | Description                                                      |
|-----------------------|------------------------------------------------------------------|
| `$DownloadPurchased`  | Triggered when a payment is complete for a download.             |
| `$DownloadDownloaded` | Triggered when a download is downloaded by a user.               |
| `$DownloadRefunded`   | Triggered when a download is refunded, either partially or full. |


### LearnDash

| Event Name                  | Description                                                                     |
|-----------------------------|---------------------------------------------------------------------------------|
| `$CourseCompleted`          | Triggered when a user completes a course.                                       |
| `$LessonCompleted`          | Triggered when a user completes a lesson.                                       |
| `$TopicCompleted`           | Triggered when a user completes a topic.                                        |
| `$QuizCompleted`            | Triggered when  a user completes a quiz.                                        |
| `$EssayGraded`              | Triggered when a user's essay has been graded.                                  |
| `$AssignmentApproved`       | Triggered when a user's assignment has been approved.                           |
| `$AssignmentNewComment`     | Triggered when a new comment is added to a user's assignment.                   |
| `$UserEnrolledInCourse`     | Triggered when a user enrolls in a course.                                      |
| `$UserEnrolledInGroup`      | Triggered when a user is enrolled in a group.                                   |
| `$UserPurchasedCourse`      | Triggered when a user purchases a course.                                       |
| `$UserPurchasedGroup`       | Triggered when a user purchases a group.                                        |
| `$UserEarnedNewCertificate` | Triggered when a user earns a new certificate.                                  |
| `$CourseNotCompleted`       | Triggered when a user has not completed a course within a specified time frame. |
| `$LessonNotCompleted`       | Triggered when a user has not completed a lesson within a specified time frame. |
| `$TopicNotCompleted`        | Triggered when a user has not completed a topic within a specified time frame.  |
| `$QuizNotCompleted`         | Triggered when a user has not completed a quiz within a specified time frame.   |
| `$DripContent`              | Triggered when content becomes available to a user due to drip-feeding.         |


### Elementor Forms

- Custom event names configurable per form
- Set up through "Actions After Submit" in form settings by selecting `Bento`


### WPForms

- Events use form name as event name
- Automatic tracking for all form submissions


### ThriveLeads

- Events follow format: `$thrive.optin.{form_identifier}`
- Example: `$thrive.optin.fancy-optin-shortcode-form-v6n9w1`


### Event Testing

To verify events are being tracked correctly:

1. Complete an action that should trigger an event
2. Check the Bento dashboard for the event

3. Verify all expected data is present

## User history and LTV

Monitor and manage user data including:

- Purchase history
- Event timeline
- Subscription status
- Form submissions

## Subscriber Management

Automatically synchronize new users into Bento:
- Add new users as Bento subscribers automatically for instant marketing integration.
- Use forms and activity data to tag users for precise segmentation and personalized messaging.
- Target specific subscriber tags to create lists for tailored marketing campaigns aimed at particular audience segments.
- Automate subscriber quality, list management, and personalization with Bento—no coding required.


### FAQ


  
    
### Does the plugin auto-update?

    
      No, the plugin does not include auto-update functionality. Manual updates are required.
    
  
  
    
### How do I get support

    
      Contact Bento support via:
      - Email: support@bentonow.com

      Or for a quicker response feel free to ask in the Bento [Discord](https://discord.gg/ssXXFRmt5F)!