Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mainwp.com/llms.txt

Use this file to discover all available pages before exploring further.

What you’ll learn

  • How Pro Reports handles suspended child sites in scheduled reports
  • How to override the default skip behavior with a filter
  • When to keep suspended sites included in a report

Extension Add-on - This add-on provides standalone functionality within MainWP Dashboard. No third-party plugins required.
When a Pro Report runs, the extension checks each selected child site and automatically removes any site that is currently suspended before the report is generated and sent. This prevents both recurring (monthly/scheduled) reports and one-time reports from being delivered for sites that you’ve paused in MainWP Dashboard. For details on suspending sites, see Suspend or Unsuspend a Child Site.

Default behavior

Scheduled (recurring) reports

For each scheduled report:
  • Pro Reports loads the sites assigned to the report (directly, by group, or by client).
  • Any site whose status is Suspended is removed from the report run.
  • A log entry is written for each skipped site, for example: Skipping suspended site :: https://example.com.
  • The report is generated and emailed only for the remaining active sites.
If every site in the report is suspended, no report is sent.

One-time (manually sent) reports

When you send a report manually from the Pro Reports overview:
  • Suspended sites are filtered out before the report is sent.
  • If the selected sites include only suspended ones, the Dashboard shows: “There are no active websites with the MainWP Child Reports plugin installed and activated for this report. Please ensure at least one selected website has the Child Reports plugin active and not suspended.”
  • The report is sent only to the remaining active sites.

Override with the filter

Use the mainwp_pro_reports_skip_suspended_site filter when you need to keep suspended sites in a report (for example, to still send a final summary, or to make the decision conditional on the report or site). Filter signature
ArgumentTypeDescription
$skipbooltrue if the site is suspended and would be skipped. Return false to include it.
$valueobject|arrayThe site row from the database. Includes the site url and suspended flag.
$reportobjectThe Pro Report being processed.
Return false to include the suspended site, or true to skip it.

Example: include suspended sites for a specific report

This snippet keeps suspended sites in any report whose title contains “Final”:
add_filter( 'mainwp_pro_reports_skip_suspended_site', 'mycustom_keep_suspended_in_final_report', 10, 3 );
function mycustom_keep_suspended_in_final_report( $skip, $site, $report ) {
    if ( ! empty( $report->title ) && false !== stripos( $report->title, 'Final' ) ) {
        return false; // Do not skip — include the suspended site.
    }
    return $skip;
}

Example: never skip suspended sites

If you want to revert to the previous behavior and always include every assigned site:
add_filter( 'mainwp_pro_reports_skip_suspended_site', '__return_false' );
Add the snippet to your Dashboard theme’s functions.php or to a PHP snippet using the Code Snippets extension.