View Categories

Maximum Products per User: Developer Hooks and Filters Reference

Hooks and filters reference #

Maximum Products per User for WooCommerce exposes a set of actions and filters so developers can adjust limits, counting and messaging in code. As of version 4.5.0 the hook names use the wpfmppu_ prefix. The older alg_wc_mppu_* names still fire as deprecated aliases (they emit _deprecated_hook() notices), so target the current names in new code.

Actions #

Hook Fires
wpfmppu_core_loaded After the core class is loaded.
wpfmppu_after_save_settings After the settings page is saved.
wpfmppu_order_data_saved After an order’s sales data is stored.
wpfmppu_before_block_guest_on_add_to_cart Before a guest is blocked at add to cart.

Core limit and counting filters #

Filter Purpose
wpfmppu_get_max_qty Filter the computed maximum quantity for a product or term.
wpfmppu_get_max_qty_for_product Filter the max quantity resolved for a specific product.
wpfmppu_max_qty_by_formula Filter the limit returned by a formula rule.
wpfmppu_user_already_bought Filter the “already bought” figure for a user.
wpfmppu_user_already_bought_validation Filter whether an “already bought” record passes validation.
wpfmppu_user_already_bought_do_count_order Control whether an order counts toward the total.
wpfmppu_check_quantities_for_product Filter the quantity check for a product.
wpfmppu_check_quantities_for_product_valid Filter whether a product’s quantity check is valid.
wpfmppu_check_quantities_guest_limits Filter guest limit checks.
wpfmppu_skip_all_products_for_product Skip the All Products limit for a given product.
wpfmppu_validate_on_add_to_cart_quantity, wpfmppu_validate_on_add_to_cart_quantity_do_add Adjust add-to-cart validation quantities and behavior.
wpfmppu_save_quantities_item_qty Filter the quantity stored per order item.
wpfmppu_orders_data_increase_qty, wpfmppu_totals_data, wpfmppu_totals_data_increase_qty, wpfmppu_totals_data_decrease_qty Filter stored orders/totals data as it is increased or decreased.

Guest and blocking filters #

Filter Purpose
wpfmppu_is_product_blocked_for_guests Filter whether a product is blocked for guests.
wpfmppu_is_product_blocked_for_guests_by_limit_options Filter guest blocking under the “According to limit options” method.
wpfmppu_local_enabled, wpfmppu_product_cat_enabled, wpfmppu_product_tag_enabled Report whether Per product / category / tag limits are active (return yes/no).
wpfmppu_settings The Pro gate. Returns true and, for option fields, the disabled attribute array in the free version.

Date, cart and message filters #

Filter Purpose
wpfmppu_date_range Filter the effective date range.
wpfmppu_date_to_check Override the date used for range checks (use priority 1000 or higher, and enable “Date to check” in Advanced).
wpfmppu_datetime_to_compare Override the current time used in comparisons (driven by Advanced > Current time offset).
wpfmppu_get_monthly_range_origin_date Filter the origin date for the Monthly range.
wpfmppu_cart_item_amount, wpfmppu_get_cart_item_amount_by_parent, wpfmppu_get_cart_item_amount_by_term, wpfmppu_get_cart_item_quantities Filter cart item amounts and quantities used in limit maths.
wpfmppu_get_notice_placeholders Filter the placeholder values used in messages.
wpfmppu_get_first_order_date_exp Filter the computed first-order expiry date.
wpfmppu_output_notices_args Filter arguments used when outputting notices.
wpfmppu_profile_page_table_row Filter a row in the user profile sales-data table.
wpfmppu_user_product_limits_item_validation, wpfmppu_user_product_limits_query_args, wpfmppu_user_terms_limits_item_validation Filter items and queries used by the My Account limit tables.
wpfmppu_calculate_data_wc_get_orders_args, wpfmppu_data_product_or_term_id Filter recalculation query args and the product/term id used for data.
wpfmppu_bkg_process_email_params Filter the background-process completion email.

Example: raise the limit for a specific user #

add_filter( 'wpfmppu_get_max_qty_for_product', function ( $max_qty, $product_id, $user_id ) {
    if ( 123 === (int) $user_id ) {
        $max_qty = 50; // VIP user
    }
    return $max_qty;
}, 10, 3 );

Argument counts vary per hook; confirm the callback signature against the source before relying on later parameters.

Deprecated hook names #

Old hook names such as alg_wc_mppu_get_max_qty, alg_wc_mppu_settings and alg_wc_mppu_user_already_bought map to their wpfmppu_* equivalents and still run for backward compatibility, logging a deprecation notice. Migrate to the current names.

Need a hand? #

Our team answers every ticket on the Maximum Products per User support forum.