Hooks and Filters
This page lists the extension points PeepSo EDD provides, the templates you can override, and the hooks it uses from PeepSo and Easy Digital Downloads. Everything below is traced from the plugin source for version 1.6.0.
Filters provided by this plugin
Section titled “Filters provided by this plugin”| Filter | Purpose | Arguments |
|---|---|---|
wbpeddi_make_edd_purchase_activity_message |
Change the text of a purchase post before it is saved. The returned HTML is passed through wp_kses_post(). |
$message (string, HTML with placeholders already replaced), $order_id (int, EDD 3 order ID) |
In 1.x the second argument was the EDD payment ID and there was a third argument with the raw setting text. In 1.6.0 the second argument is the EDD 3 order ID and there is no third argument. Use edd_get_order( $order_id ) to read the order.
The plugin provides no actions and registers no shortcodes.
Example: add the store name to the post text
Section titled “Example: add the store name to the post text”add_filter( 'wbpeddi_make_edd_purchase_activity_message', function ( $message, $order_id ) { return str_replace( '{store_name}', esc_html( get_bloginfo( 'name' ) ), $message );}, 10, 2 );With this snippet, put {store_name} in the Post text setting.
Example: add the order number
Section titled “Example: add the order number”add_filter( 'wbpeddi_make_edd_purchase_activity_message', function ( $message, $order_id ) { $order = edd_get_order( $order_id ); return $order ? $message . ' (#' . esc_html( $order->get_number() ) . ')' : $message;}, 10, 2 );Hooks removed in 1.6.0
Section titled “Hooks removed in 1.6.0”These 1.x hooks no longer exist. Code that uses them does nothing in 1.6.0 and can be removed.
| Removed hook | Type | What to do instead |
|---|---|---|
wbpeddi_show_tab_on_peepso_profile |
filter | The EDD Checkout tab is gone and My Downloads is always limited to the member’s own profile. Use the Show My Downloads tab setting to turn it off. |
wbpeddi_edd_menu_setting_for_peepso_profile |
filter | There is one tab with fixed settings. No replacement. |
wbpeddi_filter_purchase_activity_content_parameters |
filter | Replace your own placeholders in wbpeddi_make_edd_purchase_activity_message, as in the example above. |
wbpeddi_peepso_edd_integration_plugin_locale |
filter | Use WordPress’s core plugin_locale filter with the text domain peepso-edd. |
wbpeddi_peepso_edd_integration_loaded |
action | Use PeepSo’s peepso_init action. The plugin boots its features there. |
Template overrides
Section titled “Template overrides”Both front-end templates are loaded through PeepSo’s template system and can be overridden from your theme. Copy the file from the plugin into your theme and edit the copy:
| Plugin file | Theme override | Used for |
|---|---|---|
templates/edd/my-downloads.php |
yourtheme/peepso/edd/my-downloads.php |
The My Downloads tab: the view switcher around the current view’s EDD block. |
templates/edd/activity-products.php |
yourtheme/peepso/edd/activity-products.php |
The product card(s) under a purchase post. |
The variables each template receives are listed in the docblock at the top of the file. Check your copy against the plugin’s file after updates.
my-downloads.php receives:
| Variable | Type | Holds |
|---|---|---|
$views |
array | The views available to this member, slug => label. A view is included only when the plugin that owns its block is active (and, for licenses and subscriptions, its setting is on). |
$view |
string | The current view slug: library, orders, licenses or subscriptions. |
$content |
string | The current view’s rendered EDD block HTML, escaped by EDD. When the block renders nothing (Library for a member with no purchases), or for Subscriptions when the member has no EDD customer record, it is the plugin’s own <p class="wbpeddi-empty"> message with a link to the shop. |
$base_url |
string | The current URL without view, for building switcher links. |
Each view renders one EDD block: library is edd/user-downloads, orders is edd/order-history, licenses is edd/licenses (EDD Software Licensing) and subscriptions is edd/subscriptions (EDD Recurring Payments). Paging inside a view is handled by the block itself.
After updating, compare your override with the plugin file and copy it again if the variables differ.
PeepSo hooks used
Section titled “PeepSo hooks used”| Hook | Type | Used for |
|---|---|---|
peepso_init |
action | Boots all features once PeepSo is loaded. |
peepso_navigation_profile |
filter | Adds the My Downloads tab to the member’s own profile. |
peepso_profile_segment_edd-downloads |
action | Renders the My Downloads tab. |
peepso_profile_preferences |
filter | Adds the “Share my purchases in the activity stream” switch. |
peepso_activity_post_attachment |
action | Renders the product card under purchase posts. |
peepso_admin_config_tabs |
filter | Registers the EDD tab under PeepSo > Configuration. |
peepso_filter_get_option_{key} |
filter | Shows each setting’s default when the stored value is empty. |
EDD and WordPress hooks used
Section titled “EDD and WordPress hooks used”| Hook | Type | Used for |
|---|---|---|
edd_complete_purchase |
action | Creates the purchase post when an order is completed (priority 20). Renewal orders are skipped: EDD Recurring Payments renewals (child orders) and orders flagged _edd_sl_is_renewal by EDD Software Licensing. |
edd_sl_sdk_registry |
action | Registers the plugin with the bundled EDD Software Licensing SDK for automatic updates. |
template_redirect |
action | Redirects 1.x profile URLs and other members’ My Downloads URLs. |
in_admin_header |
action | Removes other plugins’ admin_notices / all_admin_notices / user_admin_notices / network_admin_notices callbacks on the WB Plugins page and the PeepSo EDD page only (priority 1). They still show on every other screen. |
When edd_complete_purchase fires with no logged-in user (a payment gateway notification, a scheduled task), the plugin sets the buyer as the current user for the one PeepSoActivity::add_post() call and restores the previous user straight after, because PeepSo only lets the current user post as themself.
The My Downloads tab does not query orders, licenses or subscriptions itself. It renders EDD’s own blocks with render_block(), and a view is offered only when its block is registered. The only lookup it makes is edd_count_customers() for the viewing member, to show the plugin’s own empty state instead of EDD Recurring’s “You must be logged in” message for a member with no customer record. The stylesheet sets EDD’s --edd-blocks-light-grey variable to a tint of the theme’s text colour so the blocks follow light and dark mode. The plugin does not filter any EDD URL or checkout behaviour.
Stored data
Section titled “Stored data”Settings, stored in PeepSo’s configuration (keys kept from 1.x):
| Key | Setting |
|---|---|
wbpeddi_enable_edd-purchase-history |
Show My Downloads tab |
wbpeddi_label_edd-purchase-history |
Tab label |
wbpeddi_items_per_page |
Items per page |
wbpeddi_show_licenses |
Show license keys |
wbpeddi_show_subscriptions |
Show subscriptions |
wbpeddi_purchase_activity_setting_display |
Post purchases to the activity stream |
wbpeddi_activity_member_default |
Members share purchases by default |
wbpeddi_activity_privacy |
Post visibility |
wbpeddi_activity_show_product |
Show a product card under the post |
wbpeddi_purchase_activity_content |
Post text |
Other data:
| Where | Key | Holds |
|---|---|---|
| User meta | peepso_wbpeddi_enable_edd_order_activity |
The member’s “Share my purchases” choice. Absent until the member chooses. |
| Post meta on the activity post | peepso_edd_activity_info |
The order ID and the buyer’s user ID, used to build the product card. |
| EDD order meta | wbpeddi_activity_id |
The purchase post created for the order, so an order never posts twice. |
| Option | edd_wbcom_WBPEDDI_license_key |
The license key (same option as 1.x). |
Uninstall
Section titled “Uninstall”Deleting the plugin from the Plugins screen removes:
- Every
wbpeddi_*setting from PeepSo’s configuration. - The license key and license status options, and the 1.x
wbpeddi_default_values_setoption. - Every member’s “Share my purchases” choice.
Purchase posts are the members’ own content and are kept, along with their post meta and the order meta.

