重力表单-获取没有输入编号的输入数据


Gravity forms - Get entry data without entry numbers

我需要在提交后抓取条目数据,即:

function update_campaign_amount($entry, $form) {
        $donate_to_personal_camp_form = get_option('als_donate_to_personal_camp_form');
        $main_campaign_form = get_option('pb_main_campaign');
        if ( $form['id'] == $donate_to_personal_camp_form ) {
            $campaign_id = $entry['55'];
            $user_donation = $entry['4'];
            $total_donations = get_post_meta($campaign_id, 'campaign_current_amount', true);
            if (is_numeric($user_donation)) {
                update_post_meta($campaign_id, 'campaign_current_amount', $total_donations + $user_donation);
            }
        }

}
add_action( 'gform_after_submission', 'update_campaign_amount', 10, 2 );

正如您在代码中看到的,两个变量$campaign_id$user_donation获得特定条目的值,它工作,但它不够好,因为今天条目的数量是55,明天它可能是其他的…是否有其他选项来获取入口值?例如,我在该表单中只有一个字段的类型为"total",我需要它的值,所以我想做这样的事情:

$entry['type'] == 'numer'

但是无论如何我都可以找到不使用绝对数字的输入数据。有人知道更灵活的方法吗?

$entry将包含当前表单提交的所有字段id和值的关联数组。因此,如果Total字段的ID为20,则可以像这样访问当前提交的总金额:$entry['20']。字段的id不会改变,因此$entry['20']将始终返回总数。详情请参阅:https://www.gravityhelp.com/documentation/article/entry-object/

如果你有很多不同的表单,并且每个表单的字段id都不同,那么你可以使用这个:

$fields = GAPI::get_fields_by_type( $form, $type );

如果你知道你只有一个数字字段你可以得到这样的ID:

$number_fields = GAPI::get_fields_by_type( $form, 'number' );
$my_number_field = $number_fields[0];
$field_id = $my_number_field->id;