I see…
s2member/src/includes/classes/sc-gets-in.inc.php
if(preg_match('/time$/i', $attr['user_field']) && $attr['date_format'])
if(is_numeric($get) && strlen($get) === 10) // Timestamp?
{
if($attr['date_format'] === 'timestamp')
$get = (string)$get; // No change.
else if($attr['date_format'] === 'default')
$get = date(get_option('date_format'), (integer)$get);
else $get = date($attr['date_format'], (integer)$get);
}
It’s checking that it’s a Unix timestamp:
if(is_numeric($get) && strlen($get) === 10) // Timestamp?
But the registration time is stored as a date-time string, so it doesn’t get formatted by s2Get.
I could add a line to convert the string to time there…
if((is_numeric($get) && strlen($get) === 10) || ($get = strtotime($get))) // Timestamp?
Of course, if a non-date value gets to that point, some wrong date will be shown, but nothing that isn’t a time field should have gotten to that place to begin with…
Would you try that and see if it works as expected this time, please?
Let me know how it goes.