public static function setTransientWithUser($transient, $value, $expiration = 0, $user_id = null)
{
$user_id = is_null($user_id) ? get_current_user_id() : $user_id;
$value = apply_filters('pre_set_user_transient_' . $transient, $value, $user_id);
$transient_timeout = '_transient_timeout_' . $transient;
$transient = '_transient_' . $transient;
if (false === get_user_meta($user_id, $transient, true)) {
if ($expiration) {
update_user_meta($user_id, $transient_timeout, time() + $expiration);
}
$result = update_user_meta($user_id, $transient, $value);
} else {
if ($expiration) {
update_user_meta($user_id, $transient_timeout, time() + $expiration);
}
$result = update_user_meta($user_id, $transient, $value);
}
if ($result) {
do_action('set_user_transient_' . $transient);
do_action('setted_user_transient', $transient, $user_id);
}
return $result;
}