Error al crear plugin para integrar tokko con mi Wp pero solo con imagenes

Buenos dias colegas, desarrolle un codigo php para crear un plugin de insercion y actulizacion de propeidades de tokko a wordpress, es decir para sincronizar, el plugin funciona(se instala y carga las propeidades de maravilla), solo que no logro subir las imagenes.
es decir si comento las lineas que crean el attachment al post funciona al toque(estoy usando una tabla intermedia):

function create_or_update_property_post($row) {
    global $wpdb;
    $tokko_id = $row->tokko_id;

    // Verificar si ya hay un post con ese _tokko_id
    $existing_post_id = new WP_Query([
        'post_type' => 'property',
        'meta_key' => '_tokko_id',
        'meta_value' => $tokko_id,
        'posts_per_page' => 1,
        'fields' => 'ids',
    ]);

    error_log("Procesando propiedad con toki_id: $tokko_id");

    $post_data = [
        'post_title' => $row->titulo,
        'post_content' => $row->descripcion,
        'post_status' => 'publish',
        'post_type' => 'property',
    ];

    // Verificar si el post ya existe
    if (!empty($existing_post_id->posts)) {
        // Ya existe el post
        $post_id = $existing_post_id->posts[0];
        $post_data['ID'] = $post_id;
        error_log("Actualizando post con ID: $post_id");
        wp_update_post($post_data);
    } else {
        // Nuevo post
        $post_id = wp_insert_post($post_data);
        error_log("Insertando nuevo post con ID: $post_id");
        add_post_meta($post_id, '_tokko_id', $tokko_id);
    }

    // Actualizar campos personalizados (ACF, RealHomes, etc.)
    update_post_meta($post_id, 'REAL_HOMES_property_price', $row->precio);
    update_post_meta($post_id, 'REAL_HOMES_property_location', $row->ubicacion);
    update_post_meta($post_id, 'REAL_HOMES_property_type', $row->tipo_propiedad);
    update_post_meta($post_id, 'REAL_HOMES_property_bedrooms', $row->dormitorios);
    update_post_meta($post_id, 'REAL_HOMES_property_bathrooms', $row->banos);
    update_post_meta($post_id, 'REAL_HOMES_property_area', $row->superficie);

    // Verificar si existe una imagen destacada
  /*  if (!empty($row->imagen_destacada)) {
        try {
            // Subir la imagen destacada desde la URL
            $attach_id = upload_image_from_url($row->imagen_destacada, $post_id, true);
            if ($attach_id) {
                set_post_thumbnail($post_id, $attach_id);
                error_log("Imagen destacada establecida para post $post_id (attachment ID: $attach_id)");
            } else {
                error_log("No se pudo subir imagen destacada para post $post_id desde URL: " . $row->imagen_destacada);
            }
        } catch (Exception $e) {
            error_log("Error al subir imagen destacada para post $post_id: " . $e->getMessage());
        }
    } else {
        error_log("No se encontró imagen destacada para la propiedad con toki_id: $tokko_id");
    }*/

    return $post_id; // Retornar el post_id para rastrear el éxito de la operación
}

Como veran el codigo lo ejecuto para cada fila de mi tabla intermedia donde la imagen destacada si existe y tiene valor. lo curioso es que si descomento esas lineas sube 3 o 4 propiedades con su imagen y luego se corta.

Buenas buenas @Giuliano_Caruso1
Con el cuidado que se requiera, y teniendo en cuenta que no soy programador, le daría el código a Chatgpt (o claude o similar) y vería cual podria dar una solución.
Esto lo haría hasta que alguien con más experiencia, pueda ayudarte más en detalle :).

Tal vez requiera algo particular del theme o algo que utilices…

Quedo a disposición y espero que puedas resolverlo, en caso exito, avisanos :)…

@Wanderlust puedes dar algun tip?

Saludos
Leo

1 me gusta

Para mi es alguna opcion del servidor dado que en local funciono perfecto, ya probe poner el set_time_limit(0);. Y si siempre le pregunto a chatGPT en mis proyectos. Sucede que las propiedades son mas de 300 y si se carga en la pagina donde puse un boton de Actualizar propiedades, da un error 503. osea se cuelga por el tiempo que le lleva, entonces hice:

// Ejecutar script secundario de sincronización de imágenes

    $phpPath = PHP_BINARY;

    $script = ABSPATH . 'wp-content/plugins/tokko-api-integration/includes/sync-tokko-property.php';



    

    $command = "\"$phpPath\" \"$script\" > \"$outputLog\" 2>&1";

    $outputLog = __DIR__ . '/output.log';

    $errorLog  = __DIR__ . '/error.log';

    $successLog = __DIR__ . '/success.log';



    $is_windows = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';



    if ($is_windows) {

        // Asegurarse de que las rutas usen doble barra invertida en Windows

        $phpPath    = str_replace('/', '\\', $phpPath);

        $script     = str_replace('/', '\\', $script);

        $outputLog  = str_replace('/', '\\', $outputLog);

        $errorLog   = str_replace('/', '\\', $errorLog);

        $successLog = str_replace('/', '\\', $successLog);

    }



    // Escapar rutas para evitar errores en nombres con espacios

    $command = "\"{$phpPath}\" \"{$script}\" > \"{$outputLog}\" 2>&1";

    if (!$is_windows) {

        // En Linux lo ejecutamos en background

        $command .= " &";

    }



    exec($command, $output, $return_var);



    if ($return_var !== 0) {

        file_put_contents($errorLog, "❌ Error al ejecutar el comando: $command\nSalida: " . implode("\n", $output) . "\n", FILE_APPEND);

    } else {

        file_put_contents($successLog, "✅ Comando ejecutado con éxito: $command\nSalida: " . implode("\n", $output) . "\n", FILE_APPEND);

    }

pero carga 4 o 5 propiedades y se cuelga y no veo errores.

execution_time
y otros valores de php.ini
revisados?