Hi. Sorry about the delay. We’ve read your post here and been working on some fixes for a 2.9.1 PMPro release coming out soon.
I really appreciate your engagement here.
> 1. The user fields do not appear on the My Account page.
By default, we don’t show them on the membership account page, but they should show up when you click to “edit profile” from that page. If that’s not the case, maybe you are referring to a different account page from the PMPro one, or there is something else going on.
To show data on the My Account page, you can use custom code or perhaps the new (needs documentation) pmpro_member shortcode. (Code here: pmpro_member_shortcode($atts, $content=null, $code=”) You can use it like [pmpro_member field=”metakey”] and it will output the value from user meta for the logged in user.
> 2. The default styling for radio buttons is nonexistent…
The 2.9.1 update will include fixed CSS and HTML for radio fields. Here’s a PR (some other UI-related updates in there as well. https://github.com/strangerstudios/paid-memberships-pro/pull/2175)
3. The “file” field type doesn’t have any restrictions on mime types or sizes or anything, so it’s not useful.
By default, we use the same check in WP core. (https://developer.wordpress.org/reference/functions/wp_check_filetype_and_ext/) You can extend or restrict this via filters.
Similarly the allowed filesize is a server/ini level value.
You can also override the HTML attributes of the input via code.
I agree it would be nice to be able to change these settings per field in code and also via the GUI.
4. The select field needs a “search” functionality
You can change your field type to select2 to get something like this.
> And there needs to be a default “–Select one–” with blank value selected initially.
We usually would do this manually when setting the options for the field. It’s a bit awkward if you didn’t want to introduce keys into the options. Adding a blank for every select might mess with some use cases, but we’ll see if we can do something there making it an option.
So the work around is to set the options for the select like:
:-Select One-
Small:Small
Medium:Medium
Large:Large
> 5. The “restrict fields for membership levels” only shows one of two levels I set up.
We were accidentally only including non-hidden levels. 2.9.1 will include this fix. https://github.com/strangerstudios/paid-memberships-pro/pull/2175/commits/a572cf0549267215728c43f54a6bc2ffa2c086da
> So far I’ve been using PODS fields with the PMPro integration plugin and those work so much better at this point
Honestly Pods and the integration we built between PMPro and Pods is going to be the way to go I think if you are already doing that. The GUI is meant for beginners and simpler set ups. We want to make it better, but it will never compete fully with Pods. We will continue to release things as soon as we find them useful.
But if using the 2.9.1 fixes (will be out this week) get you there, than I think you can go that route.
> In the dev notes for Registration Helper (which I’m not using now) I noticed it says user fields can be set as user taxonomies.
Yes. We didn’t document this yet. We have a fix for how this works with radio buttons in 2.9.1 and are working on a tutorial for how to set this up. I’ll link it here when that’s ready, but the general idea is to use the pmpro_add_user_taxonomy( $name, $name_plural )
function (https://github.com/strangerstudios/paid-memberships-pro/blob/5cf723f8e784ae680a87130f52b1dc4790bf4326/includes/fields.php#L82-L169) then use custom code to designate that taxonomy in the options for the field. Note that you need to create the terms via the dashboard and note the IDs so you can update them in the options list.
Here’s an example of a user taxonomy field set up via code. Run this code on init.
$fields = array();
pmpro_add_user_taxonomy( 'Site Category', 'Site Categories' );
$fields[] = new PMPro_Field(
'sitecategory',
'checkbox_grouped',
array(
'label' => 'Site Category',
'hint' => 'What is your business model?',
'profile' => 'only',
'taxonomy' => 'sitecategory',
'options' => array(
'7793' => 'Association',
'7794' => 'Communities',
'7795' => 'Courses',
'7796' => 'Digital Downloads',
'7797' => 'Directory/Profile',
'7798' => 'Physical Products',
'7799' => 'Premium Content',
'7800' => 'Other',
)
)
);
foreach($fields as $field) {
pmpro_add_user_field( 'after_email', $field );
}
> One other question: how can I display the Membership Level simply
You can update the account shortcode to only show certain sections. https://www.paidmembershipspro.com/new-updates-to-the-pmpro_account-shortcode/
Then recreate what you want using custom code or the pmpro_member shortcode.
Let me know how that works, if the rest of this makes sense, and if you have any further questions.
Thanks again.