Skip to content

Instantly share code, notes, and snippets.

@LaxusCroco
Last active September 13, 2023 18:49
Show Gist options
  • Save LaxusCroco/e584f77c2e0565e703b297d30b5523bc to your computer and use it in GitHub Desktop.
Save LaxusCroco/e584f77c2e0565e703b297d30b5523bc to your computer and use it in GitHub Desktop.
Additional callback 'average_value' for the Calculated Callback addon. Returns the average value of all specified post meta fields (default and additional fields)
<?php
add_filter( 'jet-engine-calculated-callback/config', function( $callbacks = array() ) {
$callbacks['average_value'] = function( $field_value, $additional ) {
if ( empty( $additional ) ) {
return 'Please set additional meta fields names to calculate';
}
$result = is_numeric( $field_value) ? $field_value : 0;
$additional = explode( ',', str_replace( ' ', '', $additional ) );
foreach ( $additional as $additional_field ) {
$additional_field_value = jet_engine()->listings->data->get_meta( $additional_field );
if ( ! is_numeric( $additional_field_value ) ) {
return 'The value should be numeric';
} else {
$result += $additional_field_value;
}
}
$divider = count( $additional ) + 1;
$result /= $divider;
return $result;
};
return $callbacks;
} );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment