0

当有人填写重力表时,我正在使用 Wordpress 并修改一个函数来更新用户元数据。我要更新的元数据是自定义配置文件信息。我从后端很好地更新了数据,但无法通过表单进行更新。

我真的看不出我哪里出错了。

function GF_setup_actions_filters() {
        $_gf_edit_profile_id =  RGFormsModel::get_form_id('25');
        add_action('gform_after_submission_25' . $_gf_edit_profile_id, 'GF_update_profile', 100, 2); }

function GF_get_profile_fields() {
        $_fields['share_a_little'] = array ( 'gf_index' => '4', 'wp_meta' => 'share_a_little' );   
        return $_fields; }

function GF_update_profile($entry, $form) {
   global $wpdb;

   if (!is_user_logged_in()) {
      wp_redirect(home_url());
      exit();
   }


   $_user_id = get_current_user_id();   
   $_user = new stdClass();
   $_user->ID = (int) $_user_id;
   $_userdata = get_user_meta($_user_id);
   $_user->user_login = $wpdb->escape($_userdata->user_login);

   $gf_fields = GF_get_profile_fields();

   $share_a_little = $entry[$gf_fields['share_a_little']['4']];
   update_user_meta($_user->ID, 'share_a_little', $share_a_little);
}
4

1 回答 1

0

这部分是错误的。

$_gf_edit_profile_id =  RGFormsModel::get_form_id('25');
add_action('gform_after_submission_25' . $_gf_edit_profile_id, 'GF_update_profile', 100, 2); }

如果您的表单 ID 为 25,并且表单未命名为 25。这些行应替换为:

 add_action('gform_after_submission_25', 'GF_update_profile', 100, 2); }

如果 from 被称为 25 而您不知道 ID,则行应该是:

$_gf_edit_profile_id =  RGFormsModel::get_form_id('25');
add_action('gform_after_submission_' . $_gf_edit_profile_id, 'GF_update_profile', 100, 2); }

该代码看起来与我不久前写的关于使用重力形式更新用户配置文件的文章非常相似。您可以在此处阅读代码说明。

于 2013-10-24T12:17:26.003 回答