Hi,
1. This code snippet should do it:
add_filter(
'wp_handle_upload_prefilter',
function( $file ) {
if ( ! is_admin() && in_array( $file['type'], [ 'image/jpeg', 'image/png' ] ) ) {
$size = getimagesize( $file['tmp_name'] );
if ( $size[0] < 800 || $size[1] < 600 ) {
$file['error'] = esc_html__( 'Images should be at least 800x600px.', 'hivepress' );
}
}
return $file;
}
);
2. Please try using existing template areas for displaying attributes, or use extensions. For example you can use Messages extension for adding the contact button (it supports sending emails without storing messages), Geolocation for locations (displays location below the listing title), and secondary area for attributes like amenties/facilities. At the moment the only way to add new attribute areas is via custom code snippets. Also you can try adding widgets to the listing sidebar in Appearance/Widgets section, but widgets will be the same for all listings.