How can we help?

Search the documentation or ask the AI agent anything about the plugin.

Developers: Code Snippets & Resources

Updated September 5, 2026

The REST API is wcusage/v2. Enable it under Coupon Affiliates > Admin Tools > API, then see API & Webhooks for merchant setup (keys, scopes, webhooks) and the API documentation for authentication, routes, payloads and examples.

Below are PHP snippets and resources that customers have asked for. They are not a substitute for the REST API reference.

Database Tables

The plugin does have its own database tables that you can get certain data from:

wcusage_activity – Activity log.

wcusage_api_keys – REST API keys (hashed), with their scopes, status and last-used date.

wcusage_campaigns – Referral URL campaigns.

wcusage_clicks – Referral URL clicks log.

wcusage_directlinks – Direct link tracking domains.

wcusage_mlainvites – Multi-Level affiliates invites.

wcusage_payouts – Commission Payouts

wcusage_register – Affiliate registration applications.

wcusage_rewards_log – Log of performance bonuses (rewards) earned by affiliates, including the reward name, requirement met and bonuses granted.

Webhooks are not stored in a table; they are saved in the wcusage_api_webhooks option.

Affiliate Orders

Get all affiliate orders for a coupon, without certain data range. This returns an array of data including the total calculations for all the orders, and all the individual orders.

$orders = wcusage_wh_getOrderbyCouponCode( $coupon_code, $start_date, $end_date, '', 1 );

Order Data

You can get an array of affiliate related data for a certain order via this function. This returns an array of data including the commission earnings.

$order_data = wcusage_calculate_order_data( $order_id, $coupon_code, 0, 1 );

To get the commission from the order for example:

$commission = $order_data['totalcommission'];

Affiliate URL

Get the affiliate URL for a coupon via the following function:

$coupon_code = ""; // Set the coupon code name here.
$affiliate_url = wcusage_get_affiliate_url($coupon_code);

Or if you want to build your own custom URL here’s an example:

$coupon_code = ""; // Set the coupon code name here.
$prefix = wcusage_get_setting_value('wcusage_field_urls_prefix', 'coupon');
$affiliate_url = get_home_url() . "?" . $prefix . "=" . $coupon_code;

Total Sales and Commission

Get the total sales and commission earned by a certain coupon, without a certain date range. Leave $start_date empty to get all sales.

$orders = wcusage_wh_getOrderbyCouponCode( $coupon_code, $start_date, $end_date, '', 1 );
$total_orders = $orders['total_orders']; // Total Sales
$total_discounts = $orders['full_discount']; // Total Discounts
$total_commission = $orders['total_commission']; // Total Commission
$order_count = $orders['total_count']; // Orders Count

Unpaid Commission

Get the total unpaid commission for an affiliate coupon.

$coupon_id = ""; // Set the coupon code ID here.
$unpaid_commission = get_post_meta( $coupon_id, 'wcu_text_unpaid_commission', true );

Hook (Action): New Affiliate Registration Submitted

When there is a new affiliate registration, it will run the “wcusage_hook_registration_new” hook that will pass the registration ID, user ID, and coupon code.

You could therefore call this hook to automatically accept the registration under certain conditions with the “wcusage_set_registration_status” function. For example this will automatically accept the registration if the users role is “example”:

add_action( 'wcusage_hook_registration_new', 'trigger_wcusage_hook_registration_new', 10, 3 );
function trigger_wcusage_hook_registration_new( $registration_id, $user_id, $coupon_code ) {
    $user_info = get_userdata( $user_id );
    $roles = $user_info->roles;

    if ( in_array( 'example', $roles ) ) {
        wcusage_set_registration_status( 'accepted', $registration_id, $user_id, $coupon_code, '', '' );
    }
}

Hook (Action): New Affiliate Accepted

When a new affiliate is accepted and added to your program, it will run the “wcusage_hook_affiliate_register_accepted” that will pass the following:

  • $id – Registration ID.
  • $userid – User ID.
  • $coupon_code – Coupon Code.
  • $message – The registration acceptance message.
  • $status – The status of their registration.
add_action( 'wcusage_hook_affiliate_register_accepted', 'trigger_wcusage_hook_registration_accepted', 10, 5 );
function trigger_wcusage_hook_registration_accepted( $id, $userid, $coupon_code, $message, $status ) {
// Your code here.
}

Hook (Action): Trigger a Performance Bonus from a Custom Event (PRO)

Performance Bonuses can be triggered from your own theme or plugin code. When creating a bonus, set the trigger type to “Developers: Custom Event / Action” and enter a Custom Event Key. Then fire the “wcusage_custom_event” action with that same key whenever the event happens:

do_action( 'wcusage_custom_event', 'your_event_key', $user_id );
// Or target a specific affiliate coupon:
do_action( 'wcusage_custom_event', 'your_event_key', $user_id, array(), 'COUPONCODE' );
  • ‘your_event_key’ must match the Custom Event Key entered on the bonus.
  • $user_id is the WordPress user ID of the affiliate to reward.
  • The fourth parameter (optional) is a coupon code or coupon post ID to target a specific affiliate coupon. When omitted, all coupons belonging to the user are checked.

See (PRO) Performance Bonuses for how to set up the bonus itself.

Legacy v1 API

The original three endpoints under woo-coupon-usage/v1 are still registered for existing integrations. They require a WordPress administrator role. They are not the current API. New integrations should use wcusage/v2.

GET /wp-json/woo-coupon-usage/v1/coupon-info with coupon_id. Returns coupon_name, unpaid_commission, and pending_payouts.

GET /wp-json/woo-coupon-usage/v1/users-coupons with user (the login name). Returns coupon IDs assigned to that user, with unpaid commission.

POST /wp-json/woo-coupon-usage/v1/request-payout with coupon_id and user (login). Returns 1 on success or 0 on failure. PRO.

Need help with a custom function? Feel free to contact us and we may be able to point you in the right direction.

Was this article helpful?