微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提交表单后 gform_after_submission 不会触发

如何解决提交表单后 gform_after_submission 不会触发

我已经测试了我的自定义函数,当提供表单 id 和条目 id 时,它可以正常工作。但是提交表单时它似乎永远不会触发。

我正在使用操作 add_action( 'gform_after_submission_14','after_submission',10,2 );

我的表单 ID 是 14。

我该如何解决此问题或纠正问题?

我的代码是:

add_action( 'gform_after_submission_14',2 );
function after_submission($entry,$form){
    
    global $wpdb;
    include  $_SERVER['DOCUMENT_ROOT'] . '/custom_config.PHP';
    $data = RGFormsModel::get_lead($entry);
    $eid = $data['id'];
    $user_id = $data['created_by'];
    $hotel = $data['33'];
    $flight = $data['39'];
    $car = $data['38'];
    $parking = $data['37'];
    $entertainment = $data['36'];
    $other = $data['35'];
    
    if($hotel!=''): 
        MysqLi_query($link,"INSERT INTO reimbursements ( user_id,eid,amount,type ) VALUES ( '$user_id','$eid','$hotel','hotel' )");
        print_r($link);
    endif;  
    if($flight!=''):    
        MysqLi_query($link,'$flight','flight' )");
    endif;
    if($car!=''):   
        MysqLi_query($link,'$car','car' )");
    endif;
    if($parking!=''):   
        MysqLi_query($link,'$parking','parking' )");
    endif;
    if($entertainment!=''): 
        MysqLi_query($link,'$entertainment','entertainment' )");
    endif;
    if($other!=''): 
        MysqLi_query($link,'$other','other' )");
    endif;

MysqLi_close($link);    
}

解决方法

问题出在这里:

$data = RGFormsModel::get_lead($entry);

$entry 已经是一个正在使用的数组。

因此,与其像我一样重新定义它们: $eid = $data['id']; 我应该使用: $eid = $entry['id'];

这个解决方案的主要部分是找出解决问题的能力。

为此,我做了以下事情:

  1. 在函数顶部添加 GFCommon::log_debug( __METHOD__ . '(): running.' );
  2. 按照此处的说明启用日志记录 (https://docs.gravityforms.com/logging-and-debugging/#enabling-logging)
  3. 在'Forms->Settings->Logging'查看'Gravity Forms Core'的错误日志这需要在测试运行时勾选'logging'。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。