1. ホーム
  2. php

[解決済み] Gravity Formsの "gform_after_submission "フィルターフックを使用する。

2022-02-01 13:38:31

質問

でエントリーが作成された後、投稿を更新し、シーケンス番号を持つ既存のフィールドの値を編集したいのですが、どうすればよいでしょうか? gform_after_submission フックを使用します。

要件は、同じ投稿の中の1つのフィールドの値を更新して、投稿を更新することです。私が見つけたのは このドキュメント が、あまり参考にならない。

また、以下を試しましたが、すべてのフィールドが更新されてしまいます。

add_filter( "gform_save_field_value", "set_field_value", 10, 4 ); 

function set_field_value( $value, $lead, $field, $form ){ 
    if( $form['id'] != 1 || $field['id'] != 19 ) 
        return; 

    $value = "xxx"; 
    return $value; 
}

解決方法は?

私は以下のコードを使って問題を解決しました。

add_filter("gform_get_input_value", "update_field", 10, 4);

    function update_field($value, $lead, $field, $input_id){
        if($lead["form_id"] == 1 && $field["id"] == 19)
            return 'xxx';
        else
            return $value;
    }

    add_filter("gform_save_field_value", "save_field_value", 10, 4);

    function save_field_value($value, $lead, $field, $form){
        if($lead["form_id"] == 1 && $field["id"] == 19)
            return 'xxx';
        else
            return $value;
    }