
giulichajari
Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
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):
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.
es decir si comento las lineas que crean el attachment al post funciona al toque(estoy usando una tabla intermedia):
PHP:
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.