Wholesaleline documentation1.x
Developers

Hooks

The actions and filters Wholesaleline offers to developers, with their arguments.

Wholesaleline's actions and filters, for code in a theme's functions.php or a small plugin. WHOLESALELINE_VERSION, WHOLESALELINE_FILE, WHOLESALELINE_URL and WHOLESALELINE_DIR are available once it has loaded.

Actions

Action Arguments When
wholesaleline_loaded none Once Wholesaleline has loaded (on plugins_loaded, with WooCommerce active).
wholesaleline_settings string $page (wholesaleline) Wholesaleline's settings sections and fields have been added: add your own sections and fields to the wholesaleline page, and register their options in the wholesaleline group.
wholesaleline_application_submitted int $user_id, array $answers (field key => answer) A customer submits a wholesale application, before any automatic approval.
wholesaleline_application_approved int $user_id, string $group (group key) An application is approved; the customer is now in the group.
wholesaleline_application_declined int $user_id, string $reason (may be empty) An application is declined.
wholesaleline_group_saved string $key (group key), array $group (its settings) A customer group is saved, new or edited.
wholesaleline_group_changed int $user_id, string $key (new group, '' for none), string $before (old group, '' for none) A customer joins, changes or leaves a group: from their profile, the Users bulk actions, an approval or a deleted group.
wholesaleline_payment_recorded WC_Order $order A payment on account is recorded for an order (the Record payment on account order action).

Filters

Filter Value and arguments What it decides
wholesaleline_price float|null $price, WC_Product $product, int $user_id, array|null $rule (kind, amount, source: customer or group) A customer's price for a product from the price lists. null: the regular price. Discountline's discounts and tiers apply on top.
wholesaleline_quantity_rule array $rule (min, max, step; 0 for none), WC_Product $product, int $user_id A customer's quantity rule for a product, used by the quantity box, the shop's Add to cart buttons, add to cart, the cart check and the Store API's quantity limits.
wholesaleline_min_order float $min (0 for none), int $user_id A customer's minimum order value (the cart subtotal as shown), checked in the classic cart and checkout and the Cart and Checkout blocks.
wholesaleline_prices_hidden bool $hidden, WC_Product|null $product (null: prices in general), string $audience (guest, retail, a group key, or '' for shop managers) Whether prices are hidden from the current shopper.
wholesaleline_hidden_price_html string $html, WC_Product $product, string $audience What shows instead of a hidden price, for example a "Request a quote" button.
wholesaleline_tax_exempt bool $exempt, int $user_id Whether a customer is exempt from tax (their own setting, else their group's).
wholesaleline_terms_available bool $available (default: logged in, with payment terms), int $user_id Whether a customer may pay on account.
wholesaleline_terms_order_status string $status (default processing), WC_Order $order The status of an order placed on account. Not applied to an order held for going over the balance limit (it goes on hold).
wholesaleline_balance_statuses string[] $statuses (without wc-; default: WooCommerce's paid statuses plus on-hold) The order statuses whose unpaid "Pay on account" orders count toward a customer's account balance.

Examples

A "Request a quote" link instead of hidden prices:

add_filter( 'wholesaleline_hidden_price_html', function ( $html, $product ) {
	return '<a class="button" href="/quote/?product=' . absint( $product->get_id() ) . '">Request a quote</a>';
}, 10, 2 );

Orders on account wait in On hold until you check them:

add_filter( 'wholesaleline_terms_order_status', function () {
	return 'on-hold';
} );