Wpd Price

Alpha Insights Documentation

Docs Navigation

Filter: wpd_price

Modify the final formatted price HTML output used throughout Alpha Insights.

Description

This filter allows you to customize the final HTML markup for prices displayed in Alpha Insights reports, dashboards, and admin interfaces. Similar to WooCommerce’s wc_price filter but specific to Alpha Insights price formatting.

Location

File: includes/wpd-functions.php

Function: wpd_store_price()

Line: ~1193

Parameters

Parameter Type Description
$return string The complete HTML markup for the price
$price string The formatted numeric price string
$args array Formatting arguments (currency, decimals, separators, etc.)
$unformatted_price float The raw unformatted price value
$original_price float|string The original price before any processing

Return

Type: string

Description: Modified price HTML markup

Args Array Structure

$args = array(
'ex_tax_label'       => false,      // Show "ex. VAT" label
'currency'           => 'USD',      // Currency code
'decimal_separator'  => '.',        // Decimal separator
'thousand_separator' => ',',        // Thousand separator
'decimals'           => 2,          // Number of decimals
'price_format'       => '%1$s%2$s'  // Symbol/price format
);

Example Usage

Add Color Coding for Profit/Loss

add_filter( 'wpd_price', 'color_code_prices', 10, 5 );
function color_code_prices( $return, $price, $args, $unformatted_price, $original_price )
{
    // Color negative values red, positive green
    if ( $unformatted_price ' . $return . '';
    }
    elseif ( $unformatted_price > 0 )
    {
        $return = '' . $return . '';
    }
    return $return;
}

Add Tooltips with Original Currency

add_filter( 'wpd_price', 'add_price_tooltips', 10, 5 );
function add_price_tooltips( $return, $price, $args, $unformatted_price, $original_price )
{
    // If currency was converted, show original
    $base_currency = get_option( 'woocommerce_currency' );
    if ( $args['currency'] !== $base_currency )
    {
        $original_formatted = wc_price( $original_price, array( 'currency' => $base_currency ) );
        $return = sprintf(
            '%s',
            esc_attr( strip_tags( $original_formatted ) ),
            $return
        );
    }
    return $return;
}

Add Formatting Classes

add_filter( 'wpd_price', 'add_price_classes', 10, 5 );
function add_price_classes( $return, $price, $args, $unformatted_price, $original_price )
{
    $classes = array( 'wpd-price' );
    // Add value-based classes
    if ( $unformatted_price  0 )
    {
        $classes[] = 'positive-value';
    }
    else
    {
        $classes[] = 'zero-value';
    }
    // Add magnitude classes
    if ( abs( $unformatted_price ) > 10000 )
    {
        $classes[] = 'large-amount';
    }
    elseif ( abs( $unformatted_price ) > 1000 )
    {
        $classes[] = 'medium-amount';
    }
    else
    {
        $classes[] = 'small-amount';
    }
    // Wrap with classes
    return '' . $return . '';
}

Abbreviate Large Numbers

add_filter( 'wpd_price', 'abbreviate_large_prices', 10, 5 );
function abbreviate_large_prices( $return, $price, $args, $unformatted_price, $original_price )
{
    // Only abbreviate very large numbers
    if ( abs( $unformatted_price ) >= 1000000 )
    {
        $abbreviated = abs( $unformatted_price ) / 1000000;
        $symbol = wpd_get_woocommerce_currency_symbol( $args['currency'] );
        $sign = $unformatted_price %s%s%.1fM',
            esc_attr( strip_tags( $return ) ), // Full price in tooltip
            $sign,
            $symbol,
            $abbreviated
        );
    }
    elseif ( abs( $unformatted_price ) >= 1000 )
    {
        $abbreviated = abs( $unformatted_price ) / 1000;
        $symbol = wpd_get_woocommerce_currency_symbol( $args['currency'] );
        $sign = $unformatted_price %s%s%.1fK',
            esc_attr( strip_tags( $return ) ),
            $sign,
            $symbol,
            $abbreviated
        );
    }
    return $return;
}

Add Icons for Trends

add_filter( 'wpd_price', 'add_trend_icons', 10, 5 );
function add_trend_icons( $return, $price, $args, $unformatted_price, $original_price )
{
    // Add up/down arrow icons
    if ( $unformatted_price > 0 )
    {
        $return = '↑ ' . $return;
    }
    elseif ( $unformatted_price 

Custom Format for Reports

add_filter( 'wpd_price', 'custom_report_format', 10, 5 );
function custom_report_format( $return, $price, $args, $unformatted_price, $original_price )
{
    // Only apply in report context
    if ( ! isset( $_GET['page'] ) || strpos( $_GET['page'], 'reports' ) === false )
    {
        return $return;
    }
    // Add custom wrapper for reports
    $return = sprintf(
        '%s',
        esc_attr( $unformatted_price ),
        $return
    );
    return $return;
}

Add Data Attributes for JavaScript

add_filter( 'wpd_price', 'add_data_attributes', 10, 5 );
function add_data_attributes( $return, $price, $args, $unformatted_price, $original_price )
{
    // Add data attributes for JavaScript manipulation
    $return = str_replace(
        '

CSS Styling Example

/* Add in your theme or plugin CSS */
.wpd-price.negative-value {
    color: #dc3545;
    font-weight: 600;
}
.wpd-price.positive-value {
    color: #28a745;
}
.wpd-price.large-amount {
    font-size: 1.2em;
    font-weight: bold;
}
.abbreviated-price {
    cursor: help;
    border-bottom: 1px dotted currentColor;
}

Debugging

add_filter( 'wpd_price', 'debug_price_filter', 999, 5 );
function debug_price_filter( $return, $price, $args, $unformatted_price, $original_price )
{
    error_log( sprintf(
        'Price Display - Unformatted: %s | Formatted: %s | Currency: %s',
        $unformatted_price,
        $price,
        $args['currency']
    ));
    return $return;
}

Related Filters

  • wpd_woocommerce_currency_symbol – Modify currency symbols
  • raw_woocommerce_price – Filter raw price before formatting
  • formatted_woocommerce_price – Filter numeric formatted price
  • woocommerce_price_trim_zeros – Control zero trimming

Related Functions

  • wpd_store_price( $price, $args ) – Format price for display
  • wpd_get_woocommerce_currency_symbol( $currency ) – Get currency symbol

Got A Question?

Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Alpha Insights

Alpha Insights

The World's Most Advanced WooCommerce Drag & Drop Report Builder.

5/5 – Trustpilot

Alpha Insights