Referenzen mit BO-Beladomo ausgeben

Über folgenden Action-Hook können Objekte mit dem Status verkauft in portfolio (Referenzen) geändert werden:

/**
 * Beitragstyp von Objekten mit Status "verkauft" etc. in "portfolio" (Referenzen) ändern
 * und Taxonomie-Terms konvertieren
 */
function mysite_update_post_type( $post_id, $immobilie ) {
  $convert_taxonomies = array(
    'offertype' => 'referencecat',
    'proptype'  => 'referencetype',
    'location'  => 'reflocation'
  );
 
  if ( in_array( (string) $immobilie->zustand_angaben->verkaufstatus['stand'], array( 'VERKAUFT', 'VERMIETET' ) ) ) {
    $post = get_post( $post_id );
 
    if ( $post ) {
      $obid = trim( (string) $immobilie->verwaltung_techn->openimmo_obid );
 
      $meta_query = array(
        'relation' => 'AND',
        array(
          'key'     => '_is_immonex_import_property',
          'compare' => 'EXISTS'
        ),
        array(
          'key'   => '_openimmo_obid',
          'value' => trim( $obid )
        )
      );
 
      $args = array(
        'post_type'   => 'portfolio',
        'post_status' => array( 'publish', 'draft', 'pending', 'future' ),
        'meta_query'  => $meta_query,
        'numberposts' => -1
      );
 
      $existing_reference_posts = get_posts( $args );
      if ( count( $existing_reference_posts ) > 0 ) {
        // Vorhandene Referenzobjekte mit gleicher ID löschen.
        foreach ( $existing_reference_posts as $ref_post ) {
          wp_delete_post( $ref_post->ID, true );
        }
      }
 
      $post->post_type = 'portfolio';
      if ( wp_update_post( $post ) ) {
        // Taxonomie-Begriffe konvertieren bzw. kopieren
        foreach ( $convert_taxonomies as $source => $dest ) {
          if ( ! get_taxonomy( $source ) || ! get_taxonomy( $dest ) ) continue;
 
          $source_terms = wp_get_post_terms( $post_id, $source );
 
          if ( count( $source_terms ) > 0 ) {
            foreach ( $source_terms as $source_term ) {
              $dest_term = get_term_by( 'name', $source_term->name, $dest );
              if ( empty( $dest_term ) ) {
                $new_term = wp_insert_term( $source_term->name, $dest );
                if ( ! is_wp_error( $new_term ) ) {
                  wp_set_object_terms( $post_id, $new_term['term_id'], $dest, true );
                }
              } else {
                wp_set_object_terms( $post_id, $dest_term->term_id, $dest, true );
              }
            }
          }
        }
      }
    }
  }
}
add_action( 'immonex_oi2wp_property_imported', 'mysite_update_post_type', 10, 2 );

Für Theme BO Beladomo.