Bulk Actions

The license list page supports bulk operations that allow administrators to act on multiple licenses simultaneously. This is useful for mass cleanup, responding to payment disputes, or exporting license data for reporting.

Accessing bulk actions

Bulk actions are available from the main license list page at LicenceForge > Licenses:

  1. Select one or more licenses using the checkboxes in the leftmost column of the table. Use the checkbox in the table header to select all licenses on the current page.
  2. Choose an action from the Bulk Actions dropdown at the top (or bottom) of the table.
  3. Click Apply to execute the selected action.
License list page with bulk actions dropdown and checkboxes
Selecting multiple licenses and choosing a bulk action from the dropdown.

Available actions

Three bulk actions are available:

Action Effect Reversible
Revoke Selected Transitions each selected license to the Cancelled state. All active site activations are deactivated. No — cancelled is a terminal state.
Suspend Selected Transitions each selected license to the Suspended state. Suspended licenses no longer validate. Yes — suspended licenses can be reactivated individually.
Export Selected (CSV) Generates a CSV file containing the selected licenses and triggers a browser download. No state changes are made. N/A — read-only operation.

Revoke Selected

The revoke action permanently cancels each selected license. For each license in the selection:

  1. The license status is transitioned to Cancelled following the standard state transition rules.
  2. If wplf_auto_deactivate is enabled, all active site activations are deactivated.
  3. The wplf_license_status_changed and wplf_license_{old}_to_cancelled action hooks fire for each license.

Important

Revocation is irreversible. Cancelled licenses cannot be restored. A confirmation dialog is displayed before the action is executed, listing the number of licenses that will be affected.

Licenses that are already in the Cancelled state are silently skipped—they do not cause an error.

Suspend Selected

The suspend action temporarily disables each selected license. Suspension is typically used for:

  • Payment disputes or chargebacks awaiting resolution.
  • Terms of service violations under investigation.
  • Temporary holds requested by the customer.

For each license in the selection:

  1. The license status is transitioned to Suspended.
  2. Validation requests for this license return a 403 response with the reason license_suspended.
  3. Active site activations are not deactivated by default during suspension. The sites remain registered but cannot validate until the license is unsuspended.

Only licenses in the Active or Trial state can be suspended. Licenses in other states are skipped with a notice in the results summary.

Export Selected (CSV)

The export action generates a CSV file containing data for the selected licenses. This is a read-only operation that does not modify any license data. The exported CSV includes the following columns:

CSV Column Source
license_id Internal license ID
license_key_last4 Last four characters of the license key (masked for security)
product_name Name of the associated product
customer_email Customer email address
customer_name Customer display name
status Current license status
activation_count Number of currently active site activations
activation_limit Maximum allowed activations
created_at License creation date (ISO 8601)
expires_at License expiration date (ISO 8601), or empty for lifetime licenses

Note

The exported CSV never includes plaintext license keys. Only the last four characters are exported to allow identification without compromising security.

Processing order

Bulk operations are processed sequentially, one license at a time, in the order they appear in the selection. Each operation is wrapped in its own database transaction to ensure that a failure on one license does not roll back changes to previously processed licenses.

After processing completes, a results summary is displayed at the top of the license list page:

  • Succeeded — The number of licenses that were successfully processed.
  • Skipped — The number of licenses that were skipped because they were already in the target state or an incompatible state.
  • Failed — The number of licenses that encountered an error, with a brief description of each failure.
License list showing bulk action results
The results summary displayed after a bulk suspend operation completes.

Permissions

Bulk actions require the manage_wplf_licenses capability. By default, this capability is granted to the Administrator role. It can be assigned to additional roles using the WordPress role editor or programmatically via add_cap().

The revoke action additionally checks for the delete_wplf_licenses capability, as cancellation is a destructive and irreversible operation.