gravityflowpdf_generated
The gravityflowpdf_generated action allows customization to occur immediately after the successful generation of the PDF file on the server.
Parameters
Parameter | Type | Definition |
---|---|---|
$file_name | String | The file name of the newly generated PDF file. |
$entry_id | Integer | The entry ID for which the PDF step was processed. |
$form_id | Integer | The form ID for which the entry was submitted. |
|
|
Examples
Example 1 - Create a copy of the PDF file with a custom name in the same folder
add_action( 'gravityflowpdf_generated', 'sh_gravityflowpdf_generated', 10, 3 ); function sh_gravityflowpdf_generated( $file_name, $entry_id, $form_id ) { $copied_file_name = 'my-file-abcd.pdf'; $file_path = gravity_flow_pdf()->get_destination_folder(); $source_file_path = gravity_flow_pdf()->get_file_path( $entry_id, $form_id ); $target_file_path = $file_path . $copied_file_name; copy( $source_file_path, $target_file_path ); }
Example 2 - Create a copy of the PDF file with step/entry specific filename in a different folder. Store the URL of new file in a single file upload field.
//Store a Gravity Flow PDF generated PDF into a separate path in wp-content and store the URL to it in a form field. add_action( 'gravityflowpdf_generated', 'jo_gravityflowpdf_generated', 10, 3 ); function jo_gravityflowpdf_generated( $file_name, $entry_id, $form_id ) { $api = new Gravity_Flow_API( $form_id ); $entry = GFAPI::get_entry( $entry_id ); $step = $api->get_current_step( $entry ); gravity_flow()->log_debug( 'Storing file for Entry #' . $entry_id . ' on Step #' . $step->get_id() ); //Use different fields and filenames for each step that is generating a PDF. switch( $step->get_id() ) { //Create a separate case block for each step that you need to store PDF file from. case '2312': //Define a unique name for the new file. //This example uses a hard-coded start (example), current date, simplified field value, entry ID and random number. $partial_filename = str_replace(' ', '', preg_replace( "/[^A-Za-z0-9]/", '', $entry['3'] ) ); $new_filename = sprintf('example-%s-%s-%s-%s.pdf', date("ymd"), $partial_filename, $entry_id, rand(100000, 750000) ); $copied_file_url = content_url() . '/uploads/gravityflowpdf/' . $new_filename; //What field ID will the URL of the file stored into? $stored_field_id = '7'; break; } gravity_flow()->log_debug( 'gravityflowpdf_generated - Storing file into ' . $copied_file_url ); //Define path to store file and copy it there. $file_path = gravity_flow_pdf()->get_destination_folder(); $source_file_path = gravity_flow_pdf()->get_file_path( $entry_id, $form_id ); $target_file_path = $file_path . $new_filename; copy( $source_file_path, $target_file_path ); gravity_flow()->log_debug( 'gravityflowpdf_generated - Updating file upload field #' . $stored_field_id . ' with the new file location' ); GFAPI::update_entry_field( $entry_id, $stored_field_id, $copied_file_url ); }
Placement
This code should be placed in the functions.php file of your active theme or in a custom functions plugin.