Damit beim Versand von einem E-Mail z.B. ein Datum aus einem ACF-Feld umformatiert werden kann, muss ein eigener MergeTag erstellt werden.
WICHTIG: bei Zeile 6 muss die Action “nf_init” aufgerufen werden, nicht wie in der Dokumentation die Action “ninja_forms_loaded”
Link zu Doku: https://developer.ninjaforms.com/codex/creating-merge-tags/
/*
* Register the new merge tag class on the `nf_init` hook.
* not ninja_forms_loaded Action
*/
add_action( 'nf_init', 'phprog_register_merge_tags' );
function phprog_register_merge_tags() {
Ninja_Forms()->merge_tags['phprog_merge_tags'] = new PHPROG_MergeTags();
}
class PHPROG_MergeTags extends NF_Abstracts_MergeTags {
/*
* The $id property should match the array key where the class is registered.
*/
protected $id = 'phprog_merge_tags';
public function __construct() {
parent::__construct();
/* Translatable display name for the group. */
$this->title = __( 'Kunde', 'ninja-forms' );
/* Individual tag registration. */
$this->merge_tags = apply_filters( 'ninja_forms_register_user_settings', array(
'veranstaltungsdatum' => array(
'id' => 'veranstaltungsdatum',
'tag' => '{kunde:veranstaltungsdatum}', // The tag to be used.
'label' => __( 'Veranstaltungsdatum', 'phprog' ), // Translatable label for tag selection.
'callback' => 'veranstaltungsdatum' // Class method for processing the tag. See below.
),
) );
}
/**
* The callback method for the {kunde:veranstaltungsdatum} merge tag.
* @return string
*/
public function veranstaltungsdatum() {
$orig = get_post_meta( $this->post_id(), 'datum', true );
$year = substr( $orig, 0, 4 );
$month = substr( $orig, 4, 2 );
$day = substr( $orig, 5, 2 );
return $day . '.' . $month . '.' . $year;
}
/**
* Added post_id to Class
*
* @return bool|int
*/
protected function post_id() {
global $post;
if ( is_admin() && defined( 'DOING_AJAX' ) && DOING_AJAX ) {
// If we are doing AJAX, use the referer to get the Post ID.
$post_id = url_to_postid( wp_get_referer() );
} elseif ( $post ) {
$post_id = $post->ID;
} else {
return false; // No Post ID found.
}
return $post_id;
}
}Ninja Forms: eigenen MergeTag erstellen


