代码之家  ›  专栏  ›  技术社区  ›  frog

使用自定义配置文件信息更新用户元数据

  •  0
  • frog  · 技术社区  · 11 年前

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

    我真的看不出哪里出了问题。

    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);
    }
    
    1 回复  |  直到 11 年前
        1
  •  0
  •   Peter van der Does    11 年前

    这部分是错误的。

    $_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); }
    

    该代码看起来与我不久前写的关于使用Gravity Forms更新用户配置文件的文章非常相似。你可以阅读 here 以及对代码的解释。