'text/plain' ); if ( 'token' !== $method ) { $token = $mlsimport->admin->mlsimport_saas_get_mls_api_token_from_transient(); $headers = array(); $headers['Content-Type'] = 'application/json'; $headers['authorizationToken'] = $token; } $args = array( 'method' => 'GET', 'headers' => $headers, 'body' => wp_json_encode($values_array), 'timeout' => 120, 'redirection' => 10, 'httpversion' => '1.1', 'blocking' => true, 'user-agent' => $_SERVER['HTTP_USER_AGENT'] ); if(empty($values_array)){ unset($args['body']); } // Choose the appropriate WordPress HTTP API function based on the request type if ( 'GET' === $type ) { $response = wp_remote_get( $url, $args ); } else { $args['method'] = $type; $response = wp_remote_post( $url, $args ); } // Handle response if ( is_wp_error( $response ) ) { return $response->get_error_message(); } else { $body = wp_remote_retrieve_body( $response ); $to_return = json_decode( $body, true ); return $to_return; } } /* * * * Api Request to MLSimport APi * * * * */ public static function global_api_request_saas( $method, $values_array, $type = 'GET' ) { global $mlsimport; $url = MLSIMPORT_API_URL . $method; $headers = array(); if ( 'token' !== $method && 'mls' !== $method ) { $token = $mlsimport->admin->mlsimport_saas_get_mls_api_token_from_transient(); $headers = array( 'authorizationToken' => $token, 'Content-Type' => 'application/json', ); } $arguments = array( 'method' => $type, 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => $headers, 'cookies' => array(), ); if ( is_array( $values_array ) && ! empty( $values_array ) ) { $arguments['body'] = wp_json_encode( $values_array ); } $response = wp_remote_post( $url, $arguments ); if ( is_wp_error( $response ) ) { // It is a WordPress error. $error_code = $response->get_error_code(); $error_message = esc_html( $response->get_error_message( $error_code ) ); $warning_message = sprintf( esc_html__( 'You have a WordPress Error. Error code: %s. Error Description: %s', 'mlsimport' ), esc_html( $error_code ), $error_message ); print esc_html( '
' . $warning_message . '
' ); $received_data['succes'] = false; return $received_data; } if ( isset( $response['response']['code'] ) && 200 === $response['response']['code'] ) { $received_data = json_decode( wp_remote_retrieve_body( $response ), true ); return $received_data; } else { $received_data['succes'] = false; return $received_data; } exit(); } /** * * * * Parse Result Array */ public function mlsimport_saas_parse_search_array_per_item( $ready_to_parse_array, $item_id_array, $batch_key, $mlsimport_item_option_data ) { $logs = ''; wp_cache_flush(); gc_collect_cycles(); $counter_prop = 0; foreach ( $ready_to_parse_array['data'] as $key => $property ) { ++$counter_prop; $logs = $this->mlsimport_mem_usage() . '=== In parse search array, listing no ' . $key . ' from batch ' . $batch_key . ' with Listingkey: ' . $property['ListingKey'] . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $logs, 'import' ); wp_cache_delete( 'mlsimport_force_stop_' . $item_id_array['item_id'], 'options' ); $status = get_option( 'mlsimport_force_stop_' . $item_id_array['item_id'] ); $logs = $this->mlsimport_mem_usage() . ' / on Batch ' . $item_id_array['batch_counter'] . ', Item ID: ' . $item_id_array['item_id'] . '/' . $counter_prop . ' check ListingKey ' . $property['ListingKey'] . ' - stop command issued ? ' . $status . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $logs, 'import' ); if ( 'no' === $status ) { $logs = 'Will proceed to import - Memory Used ' . $this->mlsimport_mem_usage() . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $logs, 'import' ); $this->mlsimport_saas_prepare_to_import_per_item( $property, $item_id_array, 'normal', $mlsimport_item_option_data ); } else { update_post_meta( $item_id_array['item_id'], 'mlsimport_spawn_status', 'completed' ); } unset( $logs ); } unset( $ready_to_parse_array ); unset( $logs ); } /** * * * Parse Result Array in CROn */ public function mlsimport_saas_cron_parse_search_array_per_item( $ready_to_parse_array, $item_id_array, $batch_key ) { $mlsimport_item_option_data = array(); $mlsimport_item_option_data['mlsimport_item_standardstatus'] = get_post_meta( $item_id_array['item_id'], 'mlsimport_item_standardstatus', true ); $mlsimport_item_option_data['mlsimport_item_property_user'] = get_post_meta( $item_id_array['item_id'], 'mlsimport_item_property_user', true ); $mlsimport_item_option_data['mlsimport_item_agent'] = get_post_meta( $item_id_array['item_id'], 'mlsimport_item_agent', true ); $mlsimport_item_option_data['mlsimport_item_property_status'] = get_post_meta( $item_id_array['item_id'], 'mlsimport_item_property_status', true ); foreach ( $ready_to_parse_array['data'] as $key => $property ) { $logs = 'In CRON parse search array, listing no ' . $key . ' from batch ' . $batch_key . ' with Listingkey: ' . $property['ListingKey'] . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $logs, 'cron' ); $this->mlsimport_saas_prepare_to_import_per_item( $property, $item_id_array, 'cron', $mlsimport_item_option_data ); } } /** * * * check if property already imported */ public function mlsimport_saas_retrive_property_by_id( $key, $post_type = 'estate_property' ) { $args = array( 'post_type' => $post_type, 'post_status' => 'any', 'meta_query' => array( array( 'key' => 'ListingKey', 'value' => $key, 'compare' => '=', ), ), 'fields' => 'ids', ); $prop_selection = new WP_Query( $args ); if ( $prop_selection->have_posts() ) { while ( $prop_selection->have_posts() ) { $prop_selection->the_post(); $the_id = get_the_ID(); wp_reset_postdata(); return $the_id; } } else { wp_reset_postdata(); return 0; } } /** * clear taxonomy * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_clear_property_for_taxonomy( $property_id, $taxonomies ) { if ( is_array( $taxonomies ) ) : foreach ( $taxonomies as $taxonomy => $term ) : if (is_wp_error($taxonomy)) { error_log('Error with taxonomy: ' . $taxonomy->get_error_message()); continue; // Skip this iteration } if ( taxonomy_exists($taxonomy) ) { wp_delete_object_term_relationships($property_id, $taxonomy); } else { error_log("Taxonomy does not exist: {$taxonomy}"); } endforeach; endif; } /** * return non encoded encoded values * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_return_non_encoded_value( $item, $encoded_values ) { if ( is_array( $item ) ) { if ( ! empty( $encoded_values ) ) { foreach ( $item as $key => $value ) { if ( isset( $encoded_values [ $value ] ) ) { $item[ $key ] = $encoded_values [ $value ]; } } } return $item; } elseif ( ! empty( $encoded_values ) && isset( $encoded_values [ $item ] ) ) { return $encoded_values [ $item ]; } else { return $item; } } /** * set taxonomy * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_update_taxonomy_for_property( $taxonomy, $property_id, $field_values ) { if ( ! is_array( $field_values ) ) { if ( strpos( $field_values, ',' ) !== false ) { $field_values = explode( ',', $field_values ); } else { $field_values = array( $field_values ); } } // Remove empty values and decode values in one pass $processed_field_values = array(); foreach ( $field_values as $value ) { if ( ! empty( $value ) ) { $processed_field_values[] = $value; } } // Bulk update terms if array is not empty if ( ! empty( $processed_field_values ) ) { wp_set_object_terms( $property_id, $processed_field_values, $taxonomy, true ); clean_term_cache( $property_id, $taxonomy ); } } /** * Set Property Title * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_update_property_title( $property_id, $mls_import_post_id, $property ) { global $mlsimport; $title_format = esc_html( get_post_meta( $mls_import_post_id, 'mlsimport_item_title_format', true ) ); if ( '' === $title_format ) { $options = get_option( 'mlsimport_admin_mls_sync' ); $title_format = $options['title_format']; } $start = '{'; $end = '}'; $title_array = $this->str_between_all( $title_format, $start, $end ); $property_extra_meta_array_lowecase = array_change_key_case( $property['extra_meta'], CASE_LOWER ); foreach ( $title_array as $key => $value ) { $replace = ''; if ( 'Address' === $value ) { if ( isset( $property['adr_title'] ) ) { $replace = $property['adr_title']; } $title_format = str_replace( '{Address}', $replace, $title_format ); } elseif ( 'City' === $value ) { if ( isset( $property['adr_city'] ) ) { $replace = $property['adr_city']; } $title_format = str_replace( '{City}', $replace, $title_format ); } elseif ( 'CountyOrParish' === $value ) { if ( isset( $property['adr_county'] ) ) { $replace = $property['adr_county']; } $title_format = str_replace( '{CountyOrParish}', $replace, $title_format ); } elseif ( 'PropertyType' === $value ) { if ( isset( $property['adr_type'] ) ) { $replace = $property['adr_type']; } $title_format = str_replace( '{PropertyType}', $replace, $title_format ); } elseif ( 'Bedrooms' === $value ) { if ( isset( $property['adr_bedrooms'] ) ) { $replace = $property['adr_bedrooms']; } $title_format = str_replace( '{Bedrooms}', $replace, $title_format ); } elseif ( 'Bathrooms' === $value ) { if ( isset( $property['adr_bathrooms'] ) ) { $replace = $property['adr_bathrooms']; } $title_format = str_replace( '{Bathrooms}', $replace, $title_format ); } elseif ( 'ListingKey' === $value ) { $replace = $property['ListingKey']; if ( '' !== $replace ) { $title_format = str_replace( '{ListingKey}', $replace, $title_format ); } } elseif ( 'ListingId' === $value ) { if ( isset( $property['adr_listingid'] ) ) { $replace = $property['adr_listingid']; } if ( '' !== $replace ) { $title_format = str_replace( '{ListingId}', $replace, $title_format ); } } elseif ( 'StateOrProvince' === $value ) { if ( isset( $property['extra_meta']['StateOrProvince'] ) ) { $replace = $property['extra_meta']['StateOrProvince']; } $title_format = str_replace( '{StateOrProvince}', $replace, $title_format ); } elseif ( 'PostalCode' === $value ) { if ( isset( $property['meta']['property_zip'] ) ) { if ( is_array( $property['meta']['property_zip'] ) ) { $replace = strval( $property['meta']['property_zip'][0] ); } else { $replace = strval( $property['meta']['property_zip'] ); } } elseif ( isset( $property['meta']['fave_property_zip'] ) ) { if ( is_array( $property['meta']['fave_property_zip'] ) ) { $replace = strval( $property['meta']['fave_property_zip'][0] ); } else { $replace = strval( $property['meta']['fave_property_zip'] ); } } $title_format = str_replace( '{PostalCode}', $replace, $title_format ); } elseif ( 'StreetNumberNumeric' === $value ) { if ( isset( $property_extra_meta_array_lowecase['streetnumbernumeric'] ) ) { $replace = $property_extra_meta_array_lowecase['streetnumbernumeric']; } $title_format = str_replace( '{StreetNumberNumeric}', $replace, $title_format ); } elseif ( 'StreetName' === $value ) { if ( isset( $property_extra_meta_array_lowecase['streetname'] ) ) { $replace = $property_extra_meta_array_lowecase['streetname']; } $title_format = str_replace( '{StreetName}', $replace, $title_format ); } } $post = array( 'ID' => $property_id, 'post_title' => $title_format, 'post_name' => $title_format, ); wp_update_post( $post ); unset( $property_extra_meta_array_lowecase ); return $title_format; } /** * * * * * import property -prepare * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_prepare_to_import_per_item( $property, $item_id_array, $tip_import, $mlsimport_item_option_data ) { // check if MLS id is set global $mlsimport; $mls_import_item_status = $mlsimport_item_option_data['mlsimport_item_standardstatus']; $new_author = $mlsimport_item_option_data['mlsimport_item_property_user']; $new_agent = $mlsimport_item_option_data['mlsimport_item_agent']; $property_status = $mlsimport_item_option_data['mlsimport_item_property_status']; if ( is_array( $mls_import_item_status ) ) { $mls_import_item_status = array_map( 'strtolower', $mls_import_item_status ); } if ( ! isset( $property['ListingKey'] ) ) { $log = 'ERROR : No Listing Key ' . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $log, $tip_import ); return; } ob_start(); $ListingKey = $property['ListingKey']; $listing_post_type = $mlsimport->admin->env_data->get_property_post_type(); $property_id = intval( $this->mlsimport_saas_retrive_property_by_id( $ListingKey, $listing_post_type ) ); $status = 'Not Found'; $property_history = array(); if ( isset( $property['StandardStatus'] ) ) { $status = strtolower( $property['StandardStatus'] ); } else { $status = strtolower( $property['extra_meta']['MlsStatus'] ); } if ( 0 === intval( $property_id) ) { $is_insert = 'no'; if ( 'active' === $status || 'active under contract' === $status || 'active with contract' === $status || 'activewithcontract' === $status || 'status' === $status || 'activeundercontract' === $status || 'comingsoon' === $status || 'coming soon' === $status || 'pending' === $status ) { $is_insert = 'yes'; if ( 'cron' === $tip_import ) { if ( ! in_array( $status, $mls_import_item_status ) ) { // REJECTED because not selected'; $is_insert = 'no'; } } } } else { $is_insert = 'no'; } $log = $this->mlsimport_mem_usage() . '==========' . wp_json_encode( $mls_import_item_status ) . '/' . $new_author . '/' . $new_agent . '/' . $property_status . '/ We have property with $ListingKey=' . $ListingKey . ' id=' . $property_id . ' with status ' . $status . ' is insert? ' . $is_insert . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $log, $tip_import ); // content set and check $content = ''; $submit_title = $ListingKey; if ( isset( $property['content'] ) ) { $content = $property['content']; } // $new_author = get_post_meta($item_id_array['item_id'],'mlsimport_item_property_user',true ); // $new_agent = esc_html(get_post_meta($item_id_array['item_id'], 'mlsimport_item_agent', true)); // $property_status = esc_html(get_post_meta($item_id_array['item_id'], 'mlsimport_item_property_status', true)); $mlsimport_item_option_data = null; if ( 'yes' === $is_insert ) { $post = array( 'post_title' => $submit_title, 'post_content' => $content, 'post_status' => $property_status, 'post_type' => $listing_post_type, 'post_author' => $new_author, ); $property_id = wp_insert_post( $post ); if ( is_wp_error( $property_id ) ) { $log = 'ERROR : on inserting ' . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $log, $tip_import ); } else { update_post_meta( $property_id, 'ListingKey', $ListingKey ); $property_history[] = date( 'F j, Y, g:i a' ) . ': We Inserted the property with Default title : ' . $submit_title . ' and received id:' . $property_id; } clean_post_cache( $property_id ); } elseif ( 0 !== $property_id ) { $property_history = array(); $property_history[] = get_post_meta( $property_id, 'mlsimport_property_history', true ); $delete_statuses = array( 'incomplete' => 'incomplete', 'hold' => 'hold', 'canceled' => 'canceled', 'closed' => 'closed', 'delete' => 'delete', 'expired' => 'expired', 'withdrawn' => 'withdrawn', ); if ( ! in_array( 'pending', $mls_import_item_status ) ) { $delete_statuses['pending'] = 'pending'; } if ( in_array( $status, $delete_statuses ) ) { $log = 'Property with ID ' . $property_id . ' and with name ' . get_the_title( $property_id ) . ' has a status of ' . $status . ' and will be deleted' . PHP_EOL; $log = '--1---> ' . $log . wp_json_encode( $mls_import_item_status ) . PHP_EOL; if ( in_array( $status, $mls_import_item_status ) ) { $log .= '-2--> canceling the delete ' . PHP_EOL; } else { $log .= '--3--> proceed with the delete ' . PHP_EOL; $this->delete_property( $property_id, $ListingKey ); } mlsimport_saas_single_write_import_custom_logs( $log, $tip_import ); unset( $log ); return; } else { $post = array( 'ID' => $property_id, 'post_content' => $content, 'post_type' => $listing_post_type, 'post_author' => $new_author, ); $log = ' Property with ID ' . $property_id . ' and with name ' . get_the_title( $property_id ) . ' has a status of ' . $status . ' and will be Edited
'; mlsimport_saas_single_write_import_custom_logs( $log, $tip_import ); $property_id = wp_update_post( $post ); if ( is_wp_error( $property_id ) ) { $log = 'ERROR : on edit ' . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $log, $tip_import ); } else { $submit_title = get_the_title( $property_id ); $property_history[] = gmdate( 'F j, Y, g:i a' ) . ': Property with title: ' . $submit_title . ', id:' . $property_id . ', ListingKey:' . $ListingKey . ', Status:' . $status . ' will be edited'; } clean_post_cache( $property_id ); } } // // Insert or edit POST ends her - START ADDING DETAILS // $encoded_values = array();// may be obsolote if ( intval( $property_id ) === 0 ) { mlsimport_saas_single_write_import_custom_logs( 'ERROR property id is 0' . PHP_EOL, $tip_import ); return; // no point in going forward if no id } // Start working on Taxonomies // $tax_log = array(); $tax_log[] = 'Property with ID ' . $property_id . ' NO taxonomies found ! '; if ( isset( $property['taxonomies'] ) && is_array( $property['taxonomies'] ) ) { $taxonomies = $property['taxonomies']; $tax_log = array(); $this->mlsimport_saas_clear_property_for_taxonomy( $property_id, $property['taxonomies'] ); foreach ( $taxonomies as $taxonomy => $term ) : $this->mlsimport_saas_update_taxonomy_for_property( $taxonomy, $property_id, $term ); $property_history[] = 'Updated Taxonomy ' . $taxonomy . ' with terms ' . wp_json_encode( $term ); $tax_log [] = 'Memory:' . $this->mlsimport_mem_usage() . ' Property with ID ' . $property_id . ' Updated Taxonomy ' . $taxonomy . ' with terms ' . wp_json_encode( $term ); endforeach; $taxonomies = null; } $tax_log = implode( PHP_EOL, $tax_log ); mlsimport_saas_single_write_import_custom_logs( $tax_log, $tip_import ); $tax_log = null; // Pre Meta jobs // $property = $this->mlsimport_saas_prepare_meta_for_property( $property ); // Start working on Meta // $meta_log = array(); $meta_log [] = 'Property with ID ' . $property_id . ' NO meta found ! ' . PHP_EOL; if ( isset( $property['meta'] ) && is_array( $property['meta'] ) ) { $meta_properties = $property['meta']; foreach ( $meta_properties as $meta_name => $meta_value ) : if ( is_array( $meta_value ) ) { $meta_value = implode( ',', $meta_value ); } update_post_meta( $property_id, $meta_name, $meta_value ); $property_history[] = 'Updated Meta ' . $meta_name . ' with meta_value ' . $meta_value; $meta_log [] = 'Memory:' . $this->mlsimport_mem_usage() . 'Property with ID ' . $property_id . ' Updated Meta ' . $meta_name . ' with value ' . $meta_value; endforeach; } $meta_properties = null; $meta_log = implode( PHP_EOL, $meta_log ); mlsimport_saas_single_write_import_custom_logs( $meta_log, $tip_import ); $meta_log = null; // Start working on EXTRA Meta // $extra_meta_log = 'Property with ID ' . $property_id . ' Start Extra meta ! ' . PHP_EOL; $extra_meta_result = $mlsimport->admin->env_data->mlsimport_saas_set_extra_meta( $property_id, $property ); if ( isset( $extra_meta_result['property_history'] ) ) { $property_history = array_merge( $property_history, (array) $extra_meta_result['property_history'] ); } if ( isset( $extra_meta_result['extra_meta_log'] ) ) { $extra_meta_log .= $extra_meta_result['extra_meta_log']; } mlsimport_saas_single_write_import_custom_logs( $extra_meta_log, $tip_import ); $extra_meta_log = null; $extra_meta_result = null; // Start working on Property Media // $media = $property['Media']; $media_history = $this->mlsimport_sass_attach_media_to_post( $property_id, $media, $is_insert ); $property_history = array_merge( $property_history, (array) $media_history ); $media = null; $media_history = null; // Updateing property title and ending // $new_title = $this->mlsimport_saas_update_property_title( $property_id, $item_id_array['item_id'], $property ); $property_history[] = 'Updated title to ' . $new_title . '
'; // extra fields to be checked $global_extra_fields = array(); $mlsimport->admin->env_data->correlation_update_after( $is_insert, $property_id, $global_extra_fields, $new_agent ); // saving history if ( ! empty( $property_history ) ) { $disable_history = intval( get_option( 'mlsimport-disable-history', 1 ) ); if ( 1 === intval( $disable_history ) ) { $property_history[] = '---------------------------------------------------------------
'; $property_history = implode( '
', $property_history ); update_post_meta( $property_id, 'mlsimport_property_history', $property_history ); } } $logs = PHP_EOL . 'Ending on Property ' . $property_id . ', ListingKey: ' . $ListingKey . ' , is insert? ' . $is_insert . ' with new title: ' . $new_title . ' ' . PHP_EOL; mlsimport_saas_single_write_import_custom_logs( $logs, $tip_import ); $capture = ob_get_contents(); ob_end_clean(); mlsimport_saas_single_write_import_custom_logs( $capture, $tip_import ); $post = null; $capture = null; $property_status = null; $new_agent = null; $new_author = null; $property_history = null; $tax_log = null; $meta_log = null; $extra_meta_log = null; $media_history = null; $logs = null; $capture = null; clean_post_cache( $property_id ); wp_cache_flush(); gc_collect_cycles(); } public function mlsimport_mem_usage() { $mem_usage = memory_get_usage( true ); $mem_usage_show = round( $mem_usage / 1048576, 2 ); return $mem_usage_show . 'mb '; } /** * prepare meta data * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_prepare_meta_for_property( $property ) { if ( isset( $property['extra_meta']['BathroomsTotalDecimal'] ) && floatval( $property['extra_meta']['BathroomsTotalDecimal'] ) > 0 ) { $property['meta']['property_bathrooms'] = floatval( $property['extra_meta']['BathroomsTotalDecimal'] ); $property['meta']['fave_property_bathrooms'] = floatval( $property['extra_meta']['BathroomsTotalDecimal'] ); $property['meta']['REAL_HOMES_property_bathrooms'] = floatval( $property['extra_meta']['BathroomsTotalDecimal'] ); } return $property; } /** * attach media to post * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_sass_attach_media_to_post( $property_id, $media, $is_insert ) { $media_history = array(); if ( 'no' === $is_insert ) { $media_history[] = ' Media - We have edit - images are not replaced'; return $media_history; } global $mlsimport; include_once ABSPATH . 'wp-admin/includes/image.php'; $has_featured = false; $all_images = array(); delete_post_meta( $property_id, 'fave_property_images' ); delete_post_meta( $property_id, 'REAL_HOMES_property_images' ); add_filter( 'intermediate_image_sizes_advanced', array( $this, 'wpc_unset_imagesizes' ) ); // sorting media if ( isset( $media[0]['Order'] ) ) { $order = array_column( $media, 'Order' ); array_multisort( $order, SORT_ASC, $media ); } if ( is_array( $media ) ) { foreach ( $media as $key => $image ) : if ( isset( $image['MediaCategory'] ) && 'Photo' !== $image['MediaCategory'] ) { continue; } $file = $image['MediaURL']; $media_url = ''; if ( isset( $image['MediaURL'] ) ) { $attachment = array( 'guid' => $image['MediaURL'], 'post_status' => 'inherit', 'post_content' => '', 'post_parent' => $property_id, ); if ( isset( $image['MimeType'] ) ) { $attachment['post_mime_type'] = $image['MimeType']; } else { $attachment['post_mime_type'] = 'image/jpg'; } if ( isset( $image['MediaKey'] ) ) { $attachment['post_title'] = $image['MediaKey']; } else { $attachment['post_title'] = ''; } $attach_id = wp_insert_attachment( $attachment, $file ); $media_history[] = ' Media - Added ' . $image['MediaURL'] . ' as attachement ' . $attach_id; // wp_generate_attachment_metadata($attach_id,$image['MediaURL']); $mlsimport->admin->env_data->enviroment_image_save( $property_id, $attach_id ); update_post_meta( $attach_id, 'is_mlsimport', 1 ); if ( ! $has_featured ) { set_post_thumbnail( $property_id, $attach_id ); $has_featured = true; } } endforeach; } else { $media_history[] = ' Media data is blank - there are no images'; } remove_filter( 'intermediate_image_sizes_advanced', array( $this, 'wpc_unset_imagesizes' ) ); $media_history = implode( '
', $media_history ); return $media_history; } function wpc_unset_imagesizes( $sizes ) { $sizes = array(); } /** * return user option * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_theme_import_select_user( $selected ) { $blog_list = ''; $blogusers = get_users( 'blog_id=1&orderby=nicename' ); foreach ( $blogusers as $user ) { $the_id = $user->ID; $blog_list .= ''; } return $blog_list; } /** * return agent option * * @since 1.0.0 * @access protected * @var string $plugin_name */ public function mlsimport_saas_theme_import_select_agent( $selected ) { global $mlsimport; $args2 = array( 'post_type' => $mlsimport->admin->env_data->get_agent_post_type(), 'post_status' => 'publish', 'posts_per_page' => 150, ); if ( method_exists( $mlsimport, 'get_agent_post_type' ) ) { $args2['post_type'] = $mlsimport->admin->env_data->get_agent_post_type(); } $agent_selection2 = new WP_Query( $args2 ); $agent_list_sec = '