Skip to content

Commit 971d44f

Browse files
authored
gpecf-exclude-products-on-hidden-pages.js: Added new snippet.
1 parent b550b31 commit 971d44f

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* Gravity Perks // eCommerce Fields // Exclude Products on Hidden Pages
3+
* https://gravitywiz.com/documentation/gravity-forms-ecommerce-fields/
4+
*
5+
* Gravity Forms does not exclude products on Hidden pages from frontend totals. As a byproduct,
6+
* they are not excluded from eCommerce Fields' subtotals either. This snippet addresses that.
7+
*
8+
* Instructions:
9+
*
10+
* 1. Install this snippet with our free Custom JavaScript plugin.
11+
* https://gravitywiz.com/gravity-forms-custom-javascript/
12+
*/
13+
window['GFPageConditionalLogic_GFFORMID'] = null;
14+
15+
gform.addAction( 'gform_frontend_pages_evaluated', function( pages, formId, self ) {
16+
if ( formId == GFFORMID ) {
17+
window['GFPageConditionalLogic_GFFORMID'] = self;
18+
gformCalculateTotalPrice( formId );
19+
}
20+
} );
21+
22+
window.gformIsHidden = function( $elem ) {
23+
24+
if ( ! $elem.length ) {
25+
return false;
26+
}
27+
28+
let $field = $elem.parents( '.gfield' );
29+
let isFieldHidden = $field.not( '.gfield_hidden_product' ).css( 'display' ) === 'none';
30+
if ( isFieldHidden ) {
31+
return true;
32+
}
33+
34+
var pageCL = window['GFPageConditionalLogic_GFFORMID'];
35+
if ( ! pageCL ) {
36+
return false;
37+
}
38+
39+
let pageIndex = $field.parents( '.gform_page' ).index();
40+
if ( pageIndex === 0 ) {
41+
return false;
42+
}
43+
44+
let page = pageCL.options.pages[ pageIndex - 1 ];
45+
let isPageHidden = ! pageCL.isPageVisible( page );
46+
47+
return isPageHidden;
48+
}

0 commit comments

Comments
 (0)