예제 #1
0
 /**
  * Update existing post
  * @return true if success
  */
 public static function wp_listings_update_post()
 {
     // Load IDX Broker API Class and retrieve featured properties
     $_idx_api = new \IDX\Idx_Api();
     $properties = $_idx_api->client_properties('featured');
     // Load WP options
     $idx_featured_listing_wp_options = get_option('wp_listings_idx_featured_listing_wp_options');
     $wpl_options = get_option('plugin_wp_listings_settings');
     foreach ($properties as $prop) {
         $key = self::get_key($properties, 'listingID', $prop['listingID']);
         if (isset($idx_featured_listing_wp_options[$prop['listingID']]['post_id']) && $idx_featured_listing_wp_options[$prop['listingID']]['listingID'] != $prop['listingID']) {
             self::wp_listings_idx_change_post_status($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], 'draft');
         } elseif (isset($idx_featured_listing_wp_options[$prop['listingID']]['post_id'])) {
             // Update property data
             if (class_exists('Equity_Idx_Api')) {
                 require_once ABSPATH . 'wp-content/themes/equity/lib/idx/class.Equity_Idx_Api.inc.php';
                 $_equity_idx = new Equity_Idx_Api();
                 $equity_properties = $_equity_idx->equity_listing_ID($prop['idxID'], $prop['listingID']);
                 if ($equity_properties == false) {
                     $equity_properties = $properties[$key];
                     delete_transient('equity_listing_' . $prop['listingID']);
                 }
                 if (!isset($wpl_options['wp_listings_idx_update']) || isset($wpl_options['wp_listings_idx_update']) && $wpl_options['wp_listings_idx_update'] != 'update-none') {
                     self::wp_listings_idx_insert_post_meta($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], $equity_properties, true, $wpl_options['wp_listings_idx_update'] == 'update-noimage' ? false : true);
                 }
                 $idx_featured_listing_wp_options[$prop['listingID']]['updated'] = date("m/d/Y h:i:sa");
             } else {
                 if (!isset($wpl_options['wp_listings_idx_update']) || isset($wpl_options['wp_listings_idx_update']) && $wpl_options['wp_listings_idx_update'] != 'update-none') {
                     self::wp_listings_idx_insert_post_meta($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], $properties[$key], true, $wpl_options['wp_listings_idx_update'] == 'update-noimage' ? false : true);
                 }
                 $idx_featured_listing_wp_options[$prop['listingID']]['updated'] = date("m/d/Y h:i:sa");
             }
         }
     }
     // Load and loop through Sold properties
     $sold_properties = $_idx_api->client_properties('soldpending');
     foreach ($sold_properties as $prop) {
         $key = self::get_key($sold_properties, 'listingID', $prop['listingID']);
         if (isset($idx_featured_listing_wp_options[$prop['listingID']]['post_id'])) {
             // Update property data
             self::wp_listings_idx_insert_post_meta($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], $sold_properties[$key], true, $wpl_options['wp_listings_idx_update'] == 'update-noimage' ? false : true);
             if (isset($wpl_options['wp_listings_idx_sold']) && $wpl_options['wp_listings_idx_sold'] == 'sold-draft') {
                 // Change to draft
                 self::wp_listings_idx_change_post_status($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], 'draft');
             } elseif (isset($wpl_options['wp_listings_idx_sold']) && $wpl_options['wp_listings_idx_sold'] == 'sold-delete') {
                 // Delete featured image
                 $post_featured_image_id = get_post_thumbnail_id($idx_featured_listing_wp_options[$prop['listingID']]['post_id']);
                 wp_delete_attachment($post_featured_image_id);
                 //Delete post
                 wp_delete_post($idx_featured_listing_wp_options[$prop['listingID']]['post_id']);
             }
         }
     }
     update_option('wp_listings_idx_featured_listing_wp_options', $idx_featured_listing_wp_options);
 }