Skip to:
Content
Pages
Categories
Search
Top
Bottom

Custom Group Fields not storing if you go to previous step


  • colingdi
    Participant

    @colingdi

    So I found (though I can now track it down) a page with how to add custom fields to a group and it worked (yipee) however during testing we’ve realised that when you add the fields and select ‘Create Group and Continue’ and on the next page select ‘Previous’ your fields are blank. But when you just proceed straight through and don’t ever go back they store. I’m pasting the groups code below if someone knows a hook I can use or similar I’d greatly appreciate it.

    function bp_group_meta_init() {
            function custom_field($meta_key='') {
                //get current group id and load meta_key value if passed. If not pass it blank
                return groups_get_groupmeta( bp_get_group_id(), $meta_key) ;
            }
            //code if using seperate files require( dirname( __FILE__ ) . '/buddypress-group-meta.php' );
            // This function is our custom field's form that is called in create a group and when editing group details
            function group_header_fields_markup() {
                global $bp, $wpdb;?>
    <label for="group-guidelines">Group Guidelines</label>
    <textarea name="group-guidelines" id="group-guidelines" aria-required="true"></textarea>
    <br>
    <label for="group-aims">Group Aims</label>
    <textarea name="group-aims" id="group-aims" aria-required="true"></textarea>
    <?php }
        // This saves the custom group meta – props to Boone for the function
        // Where $plain_fields = array.. you may add additional fields, eg
        //  $plain_fields = array(
        //      'field-one',
        //      'field-two'
        //  );
        function group_header_fields_save( $group_id ) {
            global $bp, $wpdb;
            $plain_fields = array(
                                  'group-guidelines',
                                  'group-aims'
                                  );
            foreach( $plain_fields as $field ) {
                $key = $field;
                if ( isset( $_POST[$key] ) ) {
                    $value = $_POST[$key];
                    groups_update_groupmeta( $group_id, $field, $value );
                }
            }
        }
        add_filter( 'groups_custom_group_fields_editable', 'group_header_fields_markup' );
        add_action( 'groups_group_details_edited', 'group_header_fields_save' );
        add_action( 'groups_created_group',  'group_header_fields_save' );
  • You must be logged in to reply to this topic.
Skip to toolbar