---
title: "Name Your Price: Developer Hooks and Filters Reference"
description: "Developer reference for Name Your Price for WooCommerce: filters, actions, shortcodes and REST API."
url: "https://wpfactory.com/docs/price-offerings-developer-hooks-filters/"
updated: "2026-10-05"
category: Developers
---

# Name Your Price: Developer Hooks and Filters Reference

[Name Your Price: Make Your Own Offer for WooCommerce](https://wpfactory.com/item/price-offers-for-woocommerce/) exposes actions, filters, and shortcodes so you can change its behavior in code without editing plugin files. This reference lists the hooks that ship in the current version, with their arguments verified against source.

### Filters

| Filter | Filtered value | Arguments |
| --- | --- | --- |
| `alg_wc_price_offerings_is_enabled_for_product` | Whether offers are enabled for a product | `$enabled, $product_id` |
| `alg_wc_price_offerings_is_enabled_per_product` | Whether per-product mode is active | `$is_per_product` |
| `alg_wc_po_show_offer_price_button` | Whether to show the Make an offer button | `$show, $product_id` |
| `alg_wc_po_form_field_{$field}` | The data array for a single form field | `$data` |
| `alg_wc_po_price_offer` | The offer data array before it is saved | `$price_offer, $product` |
| `alg_wc_po_accepted_price` | The price used when an offer is accepted or countered | `$accepted_price, $action, $args, $offer` |
| `alg_wc_po_duplicate_query_args` | The WP_Query args used to detect duplicate offers | `$query_args` |

The `alg_wc_po_form_field_{$field}` filter is dynamic: `{$field}` is one of `price`, `quantity`, `customer_email`, `customer_name`, `customer_phone`, `customer_message`, `recaptcha`, `button`, or `customer_copy`. Return an empty value to skip the field.

**Note:** the plugin also uses an internal `alg_wc_price_offerings_settings` filter to gate Pro-only settings fields. It is not intended for store customization.

#### Hide the button for a specific product

```
add_filter( 'alg_wc_po_show_offer_price_button', function ( $show, $product_id ) {
    return ( 1234 === (int) $product_id ) ? false : $show;
}, 10, 2 );
```

#### Adjust the saved offer data

```
add_filter( 'alg_wc_po_price_offer', function ( $offer, $product ) {
    // e.g. tag every offer with the current sale campaign
    $offer['customer_message'] = trim( $offer['customer_message'] . ' [summer-sale]' );
    return $offer;
}, 10, 2 );
```

### Actions

| Action | Fires when | Arguments |
| --- | --- | --- |
| `alg_wc_po_price_offer_created` | A new offer has been created | `$offer_id` |
| `alg_wc_po_before_offer_price_button` | Just before the button is output | `$product_id` |
| `alg_wc_po_after_offer_price_button` | Just after the button is output | `$product_id` |
| `alg_wc_po_offer_price_button_disabled` | The button is skipped for a product (not enabled or excluded) | `$product_id` |
| `alg_wc_price_offerings_core_loaded` | The core class has loaded | `$core` |
| `alg_wc_price_offerings_admin_loaded` | The admin side has loaded | `$core` |
| `alg_wc_price_offerings_frontend_loaded` | The frontend class has loaded | `$frontend` |
| `alg_wc_price_offerings_version_updated` | After the stored version is updated | `$version` |

#### Notify an external service when an offer is created

```
add_action( 'alg_wc_po_price_offer_created', function ( $offer_id ) {
    $offer = new Alg_WC_Price_Offer( $offer_id );
    wp_remote_post( 'https://example.com/webhook', array(
        'body' => array(
            'offer_id' => $offer_id,
            'price'    => $offer->get_price(),
        ),
    ) );
} );
```

Note that in the Pro version the auto-accept and auto-reject features are also attached to `alg_wc_po_price_offer_created`.

### Shortcodes

- `[alg_wc_price_offers_button]` - outputs the Make an offer button for the current product. No parameters.
- `[alg_wc_price_offers_translate]` (and its alias `[alg_wc_price_offerings_translate]`) - shows or hides content by active language. Parameters: `lang`, `not_lang`, `lang_text`, `not_lang_text`.

See the [Shortcodes guide](https://wpfactory.com/docs/shortcodes-guide-price-offer/) for full usage.

### REST API

When enabled, offers are exposed under `wc/v3/alg_wc_price_offers`. See the [Offers REST API](https://wpfactory.com/docs/name-your-price-rest-api/) reference.

### Need help?

If a hook does not behave as you expect, contact us on the [Name Your Price support forum](https://wpfactory.com/support/item/price-offers-for-woocommerce/) with the hook name and a short code sample.

Related articles

- [Email Placeholders Reference for Name Your Price](https://wpfactory.com/docs/name-your-price-email-placeholders/)
- [HPOS & WooCommerce Object Storage with Name Your Price](https://wpfactory.com/docs/hpos-woocommerce-object-storage-name-your-price/)
- [Getting Started with Name Your Price for WooCommerce](https://wpfactory.com/docs/use-name-your-price-plugin/)
- [Name Your Price: Troubleshooting Specific Issues](https://wpfactory.com/docs/troubleshooting-specific-issues-offer/)
- [Name Your Price: General Troubleshooting](https://wpfactory.com/docs/general-troubleshooting-offer/)
