Objektdaten in Contact Form 7 (CF7) einbinden

Objektdaten einer Immobilie in CF7-Formularmails einbinden:

/**
 * [immonex OpenImmo2WP/Kickstart + Contact Form 7 (CF7)] Custom Mail Tags zum Einbinden
 * von Immobiliendaten anhand des Mapping-Namens ergänzen, Format: [inx.mapping_name].
 *
 * Beispiele:
 *
 * [inx.primaerpreis]
 * [inx.primaerflaeche]
 * [inx.ausstattung.heizungsart]
 * [inx.preise.kaltmiete]
 */
function inx_cf7_property_tag ( $replaced, $submitted, $html, $mail_tag ) {
  global $inx;
  if (
    ! isset( $inx )
    || 'inx.' !== substr( $mail_tag->tag_name(), 0, 4 )
  ) {
    return $replaced;
  }
  // Objekt-Beitrags-ID anhand der URL ermitteln (reguläre Post-ID könnte die einer Template-Seite sein).
  $submission   = WPCF7_Submission::get_instance();
  $property_id  = url_to_postid( $submission->get_meta( 'url' ) );
  if ( ! $property_id ) {
    return '';
  }
  $mapping_name = substr( $mail_tag->tag_name(), 4 );
  $value = apply_filters( 'inx_get_property_detail_item',  false, $property_id, [ 'name'  => $mapping_name  ] );
  if ( $value && ! empty( $value['value_formatted'] ) ) {
    /**
     * Formatierten Wert aus dem "Sammelfeld" _inx_details übernehmen
     * (Destination-Feld in Mapping-Tabelle leer).
     */
    return $value['value_formatted'];
  }
  /**
   * Wert aus einem separaten Custom Field abrufen, sofern vorhanden
   * (Feldname in Destination-Feld).
   */
  // Zunächst den Custom-Field-Namen anhand des Mapping-Namens ermitteln.
  $cf_name = $inx->utils['data']->get_custom_field_by( 'mapping_name', $mapping_name, $property_id, true );
  if ( ! $cf_name ) {
    return '';
  }
  $value = get_post_meta( $property_id, $cf_name, true );
  if ( ! $value ) {
    return '';
  }
  if ( is_numeric( $value ) ) {
    $value = number_format_i18n( floatval( $value ), 2 );
  }
  if ( 'preis' === substr( $mapping_name, -5 ) ) {
    $value .= ' ' . $inx->currency_symbol;
  } elseif ( 'flaeche' === substr( $mapping_name, -6 ) ) {
    $value .= ' ' . $inx->area_unit;
  }
  return $value;
}
add_filter( 'wpcf7_mail_tag_replaced', 'inx_cf7_property_tag', 10, 4 );

Das immonex Kickstart Team-Add-on deckt Formulare in Objekten von Haus aus ab!