'INSTANDA quoteRef', 'is_numeric' => false, 'is_default_column' => true, ]; $entry_meta[self::META_STATUS] = [ 'label' => 'INSTANDA status', 'is_numeric' => false, 'is_default_column' => true, ]; $entry_meta[self::META_URL] = [ 'label' => 'INSTANDA quote URL', 'is_numeric' => false, 'is_default_column' => false, ]; $entry_meta[self::META_ENV] = [ 'label' => 'INSTANDA environment', 'is_numeric' => false, 'is_default_column' => false, ]; return $entry_meta; } /** gform_custom_merge_tags - advertise our merge tags in the editor. */ public function register_merge_tags(array $merge_tags, int $form_id, array $fields, int $element_id): array { $merge_tags[] = ['label' => 'INSTANDA quote ref', 'tag' => '{instanda_quote_ref}']; $merge_tags[] = ['label' => 'INSTANDA quote URL', 'tag' => '{instanda_quote_url}']; return $merge_tags; } /** gform_replace_merge_tags - resolve our merge tags from entry meta. */ public function replace_merge_tags(string $text, $form, $entry, $url_encode, $esc_html, $nl2br, $format): string { if (!is_array($entry) || empty($entry['id'])) { return $text; } $ref = (string) gform_get_meta((int) $entry['id'], self::META_REF); $url = (string) gform_get_meta((int) $entry['id'], self::META_URL); $text = str_replace('{instanda_quote_ref}', esc_html($ref), $text); $text = str_replace('{instanda_quote_url}', esc_url($url), $text); return $text; } /** Write the result to the entry. Called from the add-on's process_feed(). */ public static function record(int $entry_id, string $quote_ref, string $quote_url, string $status, string $environment): void { gform_update_meta($entry_id, self::META_REF, $quote_ref); gform_update_meta($entry_id, self::META_URL, $quote_url); gform_update_meta($entry_id, self::META_STATUS, $status); gform_update_meta($entry_id, self::META_ENV, $environment); } }