Automattic\WooCommerce\Admin\Features\PaymentGatewaySuggestions
EvaluateSuggestion::evaluate_specs
Evaluates the specs and returns the visible suggestions.
Method of the class: EvaluateSuggestion{}
No Hooks.
Returns
Array. The visible suggestions and errors.
Usage
$result = EvaluateSuggestion::evaluate_specs( $specs, $logger_args );
- $specs(array) (required)
- payment suggestion spec array.
- $logger_args(array)
- Arguments for the rule evaluator logger.
Default:array()
EvaluateSuggestion::evaluate_specs() EvaluateSuggestion::evaluate specs code WC 10.5.0
public static function evaluate_specs( $specs, $logger_args = array() ) {
$specs_key = self::get_memo_key( $specs );
if ( isset( self::$memo[ $specs_key ] ) ) {
return self::$memo[ $specs_key ];
}
$suggestions = array();
$errors = array();
foreach ( $specs as $spec ) {
try {
$suggestion = self::evaluate( $spec, $logger_args );
if ( ! property_exists( $suggestion, 'is_visible' ) || $suggestion->is_visible ) {
$suggestions[] = $suggestion;
}
} catch ( \Throwable $e ) {
$errors[] = $e;
}
}
$result = array(
'suggestions' => $suggestions,
'errors' => $errors,
);
// Memoize results, with a fail safe to prevent unbounded memory growth.
// This limit is unlikely to be reached under normal circumstances.
if ( count( self::$memo ) > 50 ) {
self::reset_memo();
}
self::$memo[ $specs_key ] = $result;
return $result;
}