= HOUR_IN_SECONDS ) {
$hours = round( $diff / HOUR_IN_SECONDS );
if ( $hours <= 1 ) {
$hours = 1;
}
$since = sprintf(
/* translators: 1: Number of hours. */
__( '%shr', 'popup-maker' ),
$hours
);
} elseif ( $diff < WEEK_IN_SECONDS && $diff >= DAY_IN_SECONDS ) {
$days = round( $diff / DAY_IN_SECONDS );
if ( $days <= 1 ) {
$days = 1;
}
$since = sprintf(
/* translators: 1: Number of days. */
__( '%sd', 'popup-maker' ),
$days
);
} elseif ( $diff < MONTH_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) {
$weeks = round( $diff / WEEK_IN_SECONDS );
if ( $weeks <= 1 ) {
$weeks = 1;
}
$since = sprintf(
/* translators: 1: Number of weeks. */
__( '%sw', 'popup-maker' ),
$weeks
);
} else {
$since = '';
}
return apply_filters( 'pum_human_time_diff', $since, $diff, $time, $current );
}
/**
* K, M number formatting for large numbers
*
* @param int|float|string $n Number to abbreviate
* @param non-empty-string $point Decimal point character
* @param non-empty-string $sep Thousands separator character
* @return int|string Returns 0 for negative or non-numeric values, formatted string for all positive values (e.g., "1.5K", "2.3M", "9,999")
*/
public static function abbreviated_number( $n, $point = '.', $sep = ',' ) {
// Convert to float and validate
$n = (float) $n;
// Check if the conversion resulted in a valid number
if ( ! is_numeric( $n ) || $n < 0 ) {
return 0;
}
if ( $n < 10000 ) {
return number_format( $n, 0, $point, $sep );
}
$d = $n < 1000000 ? 1000 : 1000000;
$f = round( $n / $d, 1 );
return number_format( $f, $f - intval( $f ) ? 1 : 0, $point, $sep ) . ( 1000 === $d ? 'K' : 'M' );
}
/**
* Strips line breaks, tabs & carriage returns from html.
*
* Used to prevent WP from adding
and
tags. * * @param string $str Input string to clean * @return string Cleaned string with whitespace removed */ public static function strip_white_space( $str = '' ) { return str_replace( [ "\t", "\r", "\n" ], '', $str ); } }