Search code examples
phpwordpressgravity-forms-plugingravityforms

Gravity Forms - Omit fields from entry


I'm using Gravity Forms and WooCommerce as well as the WooCommerce Gravity Forms Addons plugins. I have a form attached to a product which needs to do some calculations to determine the ultimate price for the product.

In order to do so, I have some intermediate calculational fields in the form which I don't want to show up in the cart, or in the entry for the order.

I've already reviewed and tried gform_pre_submission, and I can successfully remove the desired fields. The problem is that Gravity Forms apparently recalculates the form on submission and so unsetting the fields in gform_pre_submission breaks the calculations and causes the item added to the cart to have an incorrect value.

Obviously I can hide the fields in the cart with CSS, but that doesn't keep the necessary fields out of the entry and thus in the WooCommerce order information.

So, how can I omit the undesired fields from the entry, without breaking the calculations?

Thanks!

PS - Here's the presubmission code I tried in case there's an issue with my test

add_action( 'gform_pre_submission_5', 'pre_submission_handler' );
function pre_submission_handler( $form ) {
    //remove some fields which we don't need to save
    unset($_POST['input_23']);  //remove base price

}

Edit: See David's code below. I made this one modification to it to deal with oddball products:

        for( $i = count( $other_data ) - 1; $i >= 0; $i-- ) {
            if (isset($other_data[$i]['name'])){        //if not, must be a WC variation,  not GF so ignore
                if( $other_data[$i]['name'] == GFCommon::get_label( $field ) )
                    unset( $other_data[$i] );
            }
        }

A screenshot of the $other_data value for a product with BOTH WooCommerce variations AND Gravity Forms Addons variations:

$other_data var dump


Solution

  • This snippet (can be installed as a plugin) adds an option to each field to allow you to hide it from the WooCommerce cart item description (screenshot).

    https://gist.github.com/spivurno/6951662