$summary Run summary (counts, money, warnings). * @param Run|null $run Run. * @return string[] */ public static function required( array $summary, ?Run $run = null ) { $codes = array(); $counts = isset( $summary['counts'] ) ? $summary['counts'] : array(); $ready = isset( $counts[ ItemStatus::READY ] ) ? (int) $counts[ ItemStatus::READY ] : 0; if ( $ready > 100 ) { $codes[] = self::COUNT_OVER_100; } $money = isset( $summary['money'] ) && is_array( $summary['money'] ) ? $summary['money'] : array(); foreach ( $money as $currency => $figures ) { $before = isset( $figures['before'] ) ? (float) $figures['before'] : 0.0; $delta = isset( $figures['delta'] ) ? (float) $figures['delta'] : 0.0; if ( $before > 0 && abs( $delta ) / $before > 0.10 ) { $codes[] = self::REVENUE_DELTA_OVER_PCT; } if ( abs( $delta ) > 1000 ) { $codes[] = self::REVENUE_DELTA_OVER_ABS; } } $warnings = isset( $summary['warnings'] ) && is_array( $summary['warnings'] ) ? $summary['warnings'] : array(); foreach ( array_keys( $warnings ) as $code ) { if ( 0 === strpos( (string) $code, 'confirm_' ) ) { $codes[] = (string) $code; } } $codes = array_values( array_unique( $codes ) ); /** * Filters the confirmation codes required before applying a run. * * @param string[] $codes Codes. * @param array $summary Summary. * @param Run|null $run Run. */ return (array) apply_filters( 'recast_confirmation_thresholds', $codes, $summary, $run ); } /** * Human labels for codes. * * @return array */ public static function labels() { return Labels::confirmations(); } }