WP-Members: Membership Framework
[resolved] [Plugin: WP-Members] id tags for checkbox labels (6 posts)

  1. Brian KD
    Posted 3 years ago #

    Hi Chad,

    On my old registration form I have 39 checkboxes... 3 columns with 13 rows. However, I cannot style it this way because I have no way to move the labels, but I'd rather not have 39 more rows. Any way to move the labels around. I did think of using your fix:

    add_filter( 'wpmem_register_form', 'my_register_form_filter' );
    function my_register_form_filter( $form )
    	 * The registration form is brought in with $form
    	 * You can append to it or filter it
    	return $form;

    To write in id tags via this method would be potentially tedious but I will if I have to. Even if the id tag was the same as 'name' in the: for="name" part, that would work for me. Example:

    <label for="amenities_ac" id="amenities_ac"
    class="checkbox">Air Conditioner</label>

    Thanks for your help,
    -Brian Peterson


  2. Chad Butler
    Plugin Author

    Posted 3 years ago #

    Let me think about that a little bit... I might have a work around for you.

  3. Chad Butler
    Plugin Author

    Posted 3 years ago #

    I have been exploring the possibility of making some changes to the default forms. However, due to the large number of effected users, I don't generally make changes like that lightly, especially because the vast majority of people upgrade on their live site before even reading what changes are in the update, resulting in a barrage of angry emails. ;-)

    But I've considered a couple of things with the forms. One is a div wrapping the label and the form element. Your mention of ids for the labels definitely makes sense and fits into these changes.

    Before I go down that road, I would suggest a slight code change for you to try and let me know if it works for you.

    In wp-members-dialogs.php at line 375, change this:

    $form = $form . '<label for="' . $wpmem_fields[$row][2] . '" class="' . $class . '">' . $wpmem_fields[$row][1];

    to this:

    $form = $form . '<label for="' . $wpmem_fields[$row][2] . '" id="' $wpmem_fields[$row][2] . '_label" class="' . $class . '">' . $wpmem_fields[$row][1];

    That should give each label the id of label-name_label.

    Let me know if that gets you closer to what you need.

    If this ends up not being a change implemented in an update, I think there might be a simple way of looping through with the filter where you wouldn't have to make each individual change.

  4. Brian KD
    Posted 3 years ago #

    What, you don't want a flood of support tickets on your next update!? Haha, I use a WAMP localhost server to test all upgrades before I put them live for my clients. Just can't risk things going wonky on them.

    There was a missing concatenation period that I added in the new id= field, right before the $wpmem_fields[$row][2] variable:

    $form = $form . '<label for="' . $wpmem_fields[$row][2] . '" id="' . $wpmem_fields[$row][2] . '_label" class="' . $class . '">' . $wpmem_fields[$row][1];

    It worked like a charm. All of the input labels and checkboxes now have id tags.

    Thanks for the fix Chad. I don't think this particular fix could damage user forms unless they had matching css styles somewhere else on their site. If you were worried, on the more common/default form elements you could explicitly style the new id tags just to be safe.

    Then the only one who would have to worry about your update would be me :) But I keep my CSS edits in my own stylesheet so you can't overwrite them, so no worries ;-)

    Thanks again Chad!
    Brian Peterson

  5. Brian KD
    Posted 3 years ago #


  6. Chad Butler
    Plugin Author

    Posted 3 years ago #

    Excellent - glad to hear that's working out.

    With that particular fix, it's not breaking the forms themselves that I'm worried about. It's more the users that might be using a filter on the forms and breaking their filter.

    But I'm leaning toward implementing this in the next release. I think it's needed.

    Just in case though, that function is pluggable, so you could set up your own version of the function which would make it easier to manage upgrades. See: http://butlerblog.com/2011/11/29/customizing-wp-members-with-pluggable-functions/ for information on how to set that up. (The only caveat is that the wpmem_inc_registration_NEW function will eventually be deprecated to wpmem_inc_registration - but that would be included in the update announcement).

Topic Closed

This topic has been closed to new replies.

About this Plugin

  • WP-Members: Membership Framework
  • Frequently Asked Questions
  • Support Threads
  • Reviews

About this Topic