$attachment_url = wp_get_attachment_url(carbon_get_post_meta( 'crb_game_files'));
сам по себе не сработал, красным все время горело, поэтому добавил post_id, но лучше стало не до конца, пока вот так вод выглядит add_action('save_post', 'crb_save_post', 10, 3);
function crb_save_post($post_id, $post, $update) {
$attachment_url = wp_get_attachment_url(carbon_get_post_meta($post_id, 'crb_game_files'));
error_log("Attachment URL: " . print_r($attachment_url, true));
if (!$attachment_url)
{
error_log("Ошибка: Файл не был загружен.");
return;
}
$file_info = array(
'tmp_name' => get_attached_file($attachment_url),
'name' => basename($attachment_url),
'type' => mime_content_type($attachment_url),
'error' => 0,
'size' => filesize($attachment_url),
);
error_log("==== Начало обработки сохранения поста ====");
error_log("post_id: $post_id");
error_log("post_title: {$post->post_title}");
error_log("update: " . ($update ? 'true' : 'false'));
if (!$update && defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
error_log("Производится автосохранение, прерываем обработку.");
return;
}
if (!isset($file_info['error']) || $file_info['error'] !== UPLOAD_ERR_OK) {
$error_message = "Ошибка при загрузке файла. Код ошибки: {$file_info['error']}";
error_log($error_message);
return;
}
error_log("Проверяем успешность перемещения файла...");
$games_folder = get_stylesheet_directory() . '/games/';
$post_folder = $games_folder . $post_id;
error_log("Путь к папке: $post_folder");
error_log("Размер файла: {$file_info['size']} байт");
error_log("Имя файла: {$file_info['name']}");
error_log("Тип файла: {$file_info['type']}");
error_log("Временное имя файла: {$file_info['tmp_name']}");
if (!file_exists($post_folder)) {
error_log("Папка не существует, создаем: $post_folder");
mkdir($post_folder, 0755, true);
} else {
error_log("Папка уже существует: $post_folder");
}
$target_path = $post_folder . '/' . basename($file_info['name']);
if (move_uploaded_file($file_info['tmp_name'], $target_path)) {
$log_message = "Файл успешно перемещен в папку: $target_path";
file_put_contents($post_folder . '/log.txt', $log_message . PHP_EOL, FILE_APPEND);
error_log($log_message);
} else {
$log_message = "Не удалось переместить файл.";
file_put_contents($post_folder . '/log.txt', $log_message . PHP_EOL, FILE_APPEND);
error_log($log_message);
error_log("Детали ошибки при перемещении файла: " . error_get_last()['message']);
}
error_log("==== Завершение обработки сохранения поста ====");
}
->set_value_type( 'url' )
add_action('wp_after_insert_post', 'crb_after_insert_post', 10, 3);
function crb_after_insert_post($post_id, $post, $update) {
if ($post->post_type === 'post') {
$games_folder = get_template_directory() . '/games/';
$post_folder = $games_folder . $post_id;
if (!file_exists($post_folder)) {
mkdir($post_folder);
}
}
}
Код работает везде кроме коллайдеров, у которых meshcollider, с ними ерунда какая-то. С шансом 50 на 50 мой объект проваливается, я не понимаю почему. Даже если сделать смещение и как бы сверху объект будет, то есть шанс, что он провалится сковзь мой meshcollider.
У меня модель - плита, плоскость, но сзади стена поднятая. По бокам работает всегда как надо и ставится объект рядом с моей плитой, не внутри неё. А вот если сверху, то 50 на 50 что провалится объект мой