Referenzen in WP Residence ausgeben

Das Setzen der Kategorie Referenzen und die Entfernung der Preisangaben kann mit folgender Action-Hook-Funktion umgesetzt werden.
Zu beachten ist hierbei, dass beim WP-Residence-Theme zwei Status-Taxonomien definiert werden: property_status (allgemein) und property_action_category (Vermarktungsstatus).

Soll Referenzen nicht in der allgemeinen Status-Taxonomie hinterlegt werden, sondern die Vermarktungsangabe zu verkaufen/zu vermieten ersetzen, muss die Taxonomie in der ersten Zeile der Funktion in property_action_category geändert werden.

/**
 * Objekten mit Verkauft-Status die Kategorie "Referenzen" zuweisen und Preisangaben entfernen
 */
function mysite_modify_reference_properties( $post_id, $immobilie ) {
  $status_taxonomy = 'property_status'; // <-- ALTERNATIV "property_action_category"
  if (
    ! get_post_meta( $post_id, '_immonex_is_sold', true ) &&
    ! get_post_meta( $post_id, '_immonex_is_reference', true )
  ) {
    return;
  }
  // "Referenzen" in Status-Taxonomie (siehe oben) setzen
  wp_set_object_terms( $post_id, 'Referenzen', $status_taxonomy, false );
  // Primärpreis auf 0 setzen
  update_post_meta( $post_id, 'property_price', 0 );
  // weitere Preisangaben entfernen (sofern vorhanden)
  $immonex_custom_fields = get_post_meta( $post_id, '_immonex_custom_fields', true );
  $filtered_immonex_custom_fields = array();
  if ( count( $immonex_custom_fields ) > 0 ) {
    foreach ( $immonex_custom_fields as $key => $field_data ) {
      if (
        ! isset( $field_data['group'] ) ||
        'prices' !== $field_data['group']
      ) {
        $filtered_immonex_custom_fields[$key] = $field_data;
      }
    }
    update_post_meta( $post_id, '_immonex_custom_fields', $filtered_immonex_custom_fields );
  }
}
add_action( 'immonex_oi2wp_property_imported', 'mysite_modify_reference_properties', 10, 2 );

Für Theme WP Residence.