Skip to content

Commit e3a80e3

Browse files
authored
gpasc-draft-groups.php: Created a new snippet that implements the concept of drafts groups, specified by a target query parameter.
1 parent 5172120 commit e3a80e3

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/**
3+
* Gravity Perks // Advanced Save & Continue // Draft Groups by Query Parameter
4+
* https://gravitywiz.com/documentation/gravity-forms-advanced-save-continue/
5+
*
6+
* Instruction Video: Incoming...
7+
*
8+
* Create draft groups where only drafts saved from a URL with the same group ID
9+
* (specified by a query parameter) will be displayed when that query parameter is
10+
* present.
11+
*/
12+
add_filter( 'gpasc_form_resume_tokens', function( $tokens, $form_id ) {
13+
// Update "order_id" to your desired query parameter.
14+
$target_parameter = 'order_id';
15+
$target_value = rgget( $target_parameter );
16+
if ( ! $target_value ) {
17+
return $tokens;
18+
}
19+
foreach ( $tokens as &$token ) {
20+
// If token is specifically passed via parameter, don't interfere.
21+
$query_token = rgget( 'gf_token' );
22+
if ( $query_token && $query_token === $token['token'] ) {
23+
continue;
24+
}
25+
$path = parse_url( $token['form_path'], PHP_URL_QUERY );
26+
parse_str( $path, $params );
27+
if ( ! isset( $params[ $target_parameter ] ) || $params[ $target_parameter ] != $target_value ) {
28+
$token = null;
29+
}
30+
unset( $token );
31+
}
32+
return array_filter( $tokens );
33+
}, 10, 2 );

0 commit comments

Comments
 (0)