Skip to content

Instantly share code, notes, and snippets.

@travislopes
Last active January 4, 2021 15:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save travislopes/c6058b97e4e2cda13d649dd95ace3045 to your computer and use it in GitHub Desktop.
Save travislopes/c6058b97e4e2cda13d649dd95ace3045 to your computer and use it in GitHub Desktop.
Filter to embed QR code field images into PDF fields
<?php
// Change the priority for Fillable PDFs.
remove_filter( 'gform_entry_post_save', array( fg_fillablepdfs(), 'maybe_process_feed' ), 10 );
add_filter( 'gform_entry_post_save', array( fg_fillablepdfs(), 'maybe_process_feed' ), 99, 2 );
/**
* Embed generated QR Code into PDF field.
*
* @param array $pdf_meta PDF arguments.
* @param array $feed The feed object.
* @param array $entry The entry object.
* @param array $form The form object.
*
* @return array
*/
add_filter( 'fg_fillablepdfs_pdf_args', function( $args, $feed, $entry, $form ) {
// If form does not have any QR Code fields, return.
if ( ! GFAPI::get_fields_by_type( $form, 'qrcode' ) ) {
return $args;
}
foreach ( rgars( $feed, 'meta/fieldMap', array() ) as $field_name => $meta ) {
$field = GFAPI::get_field( $form, $meta['field'] );
$field_value = rgar( $entry, $meta['field'] );
// If this PDF field is not mapped to a QR Code field, skip.
if ( ! $field || $field->type !== 'qrcode' || empty( $field_value ) ) {
continue;
}
// Get image URL, append "image_fill" modifier.
$field_value = $field->get_value_entry_detail( $field_value, '', false, 'text' );
$field_value = 'image_fill|' . $field_value;
$args['field_values'][ $field_name ] = $field_value;
}
return $args;
}, 10, 4 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment