[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fd-HPsWB1CGKTASxcfQySV4gndiOD5JmL2NtPe_netys":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"eighty20results","Thomas S","https:\u002F\u002Fprofiles.wordpress.org\u002Feighty20results\u002F",3,170,90,30,87,"2026-04-04T10:33:53.118Z",[14,38,59],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":20,"downloaded":21,"rating":20,"num_ratings":22,"last_updated":23,"tested_up_to":24,"requires_at_least":25,"requires_php":26,"tags":27,"homepage":33,"download_link":34,"security_score":20,"vuln_count":35,"unpatched_count":35,"last_vuln_date":36,"fetched_at":37},"pmpro-import-members-from-csv","Import Members from CSV for Paid Memberships Pro","3.1.4","\u003Cp>We designed this plugin to give you an error free import of a user\u002Fmember to a WordPress\u002FPaid Memberships Pro site.\u003Cbr \u002F>\nIt supports both adding and changing user data.\u003C\u002Fp>\n\u003Cp>Unlike the “Import User From CSV Integration” add-on by Paid Memberships Pro, this “Import Members from CSV” plugin\u003Cbr \u002F>\nwill verify the data you are trying to import during the import operation. This is done to reduce the probability of\u003Cbr \u002F>\nproblem after the import. If there are any errors\u002Fissues, information about the problem will be logged to the\u003Cbr \u002F>\n    e20r_im_errors.log saved in the \u003Ccode>wp-content\u002Fuploads\u002F\u003C\u002Fcode> directory.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: You can run the import multiple times with the same\u002Fslightly modified import .csv file and the appropriate\u003Cbr \u002F>\nsettings (see the FAQ\u002Fdescription below). If you configure the plugin settings correctly, this will only result in\u003Cbr \u002F>\noverwriting\u002Fchanging the existing member data.\u003C\u002Fp>\n\u003Cp>Using a CSV (Comma Separated Values) file, the will add users with basic user information as well as user meta data\u003Cbr \u002F>\nfields, the user role (if applicable) and the specified Paid Memberships Pro member configuration\u002Finformation. It can\u003Cbr \u002F>\nalso generate an order record to ensure your recurring subscriptions continue to get attributed to the imported member.\u003C\u002Fp>\n\u003Cp>If you’ve exported the user’s passwords as hashed strings, you can import them without re-encrypting them again\u003Cbr \u002F>\n(by setting the option).\u003C\u002Fp>\n\u003Cp>You can also choose to send a notification to the new users and to display password nag on user login.\u003C\u002Fp>\n\u003Cp>This plugin supports Network Activation on a WordPress Multisite (WPMU) installation (see the settings page when\u003Cbr \u002F>\nusing in a multisite configuration)\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Feighty20results.com\u002Fwordpress-plugins\u002F\" rel=\"nofollow ugc\">Check out my other plugins.\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Imports all WP User database table fields\u003C\u002Fli>\n\u003Cli>Imports user meta\u003C\u002Fli>\n\u003Cli>Imports PMPro membership data\u003C\u002Fli>\n\u003Cli>Update existing users if they already exist in the WP Users database (if the option is selected)\u003C\u002Fli>\n\u003Cli>Overwrite preexisting membership records for the same membership level as is being imported (if the option is selected)\u003C\u002Fli>\n\u003Cli>Set\u002FUpdate the user WordPress role for the member (if the role is specified in the import file)\u003C\u002Fli>\n\u003Cli>Sends new user a notification message (if the option is selected)\u003C\u002Fli>\n\u003Cli>Deactivate the standard WordPress user update email notices during the import operation\u003C\u002Fli>\n\u003Cli>Shows password nag on user login (if the option is selected)\u003C\u002Fli>\n\u003Cli>Allows large user\u002Fmember import without having to configure the PHP max_execution_time variable (if the option is selected)\u003C\u002Fli>\n\u003Cli>Import hashed password for new\u002Fupdating users (if the option is selected)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: The plugin may not import some of data if it detects a problem. To find out what the problem was, read this\u003Cbr \u002F>\ndocumentation and the FAQ section to ensure you have correctly formatted \u003Cem>all\u003C\u002Fem> of your import data.\u003C\u002Fp>\n\u003Cp>For feature request and bug reports, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feighty20results\u002Fpmpro-import-members-from-csv\u002Fissues\" rel=\"nofollow ugc\">please use the issues section on GitHub\u003C\u002Fa>.\u003Cbr \u002F>\nCode contributions are welcome \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feighty20results\u002Fpmpro-import-members-from-csv\" rel=\"nofollow ugc\">on Github\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: In order to hide the “Donation” button after a donation, this plugin will attempt to track the admin’s IP\u003Cbr \u002F>\naddress. This action may have GDPR implications for you or your administrators.\u003C\u002Fp>\n\u003Cp>The tracking information is stored in the WordPress options table (wp_options) using the \u003Ccode>e20r_import_has_donated\u003C\u002Fcode>\u003Cbr \u002F>\noption name and can safely be deleted in the database if you do not wish to leave it. Deleting the option from the\u003Cbr \u002F>\ndatabase will obviously re-enable the Donation nag.\u003C\u002Fp>\n\u003Cp>The Nag tracking can be disabled altogether with the \u003Ccode>e20r_import_donation_tracking_disabled\u003C\u002Fcode> filter:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'e20r_import_donation_tracking_disabled', '__return_true' );'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>How to use?\u003C\u002Fh3>\n\u003Cp>Click on the ‘Import Members’ link in the ‘Membership’ menu, then select your CSV file.\u003Cbr \u002F>\nNext you have to decide whether you:\u003C\u002Fp>\n\u003Col>\n\u003Cli>want to deactivate previously existing member record(s) for the user – The CSV record has to specify the same\u003Cbr \u002F>\nmembership as the user previously had so this is most useful when having to reimport\u002Fupdate data (default: enabled and\u003Cbr \u002F>\nrecommended),\u003C\u002Fli>\n\u003Cli>update the existing user\u002Fmember’s information (default: enabled and recommended)\u003C\u002Fli>\n\u003Cli>send a notification email to new users (default: disabled),\u003C\u002Fli>\n\u003Cli>want the password nag to be displayed when the user logs in (default: disabled),\u003C\u002Fli>\n\u003Cli>have included a hashed (encoded) password specified in the import file and (default: disabled)\u003C\u002Fli>\n\u003Cli>want to use the background import option (default: enabled and recommended)\u003C\u002Fli>\n\u003Cli>create a PMPro order record based on supplied payment info in the .csv file (default: disabled)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Then click the ‘Import’ button.\u003C\u002Fp>\n\u003Cp>Each row in your CSV file should represent a user; each column identifies user data, user meta data or user membership data\u003Cbr \u002F>\nIf a column name matches a field in the user table, data from this column is imported in that field; if not, data is\u003Cbr \u002F>\nimported in a user meta field with the name of the column or into the PMPro custom membership tables.\u003C\u002Fp>\n\u003Cp>Look at the examples\u002Fimport.csv file in the plugin directory (also linked on the “Import Members” page) to have a\u003Cbr \u002F>\nbetter understanding of how the your CSV file should be organized and what the data fields need to contain as far as\u003Cbr \u002F>\nformatting\u002Fvalues go.\u003C\u002Fp>\n\u003Cp>You can always try importing the examples\u002Fimport.csv file and look at the result, assuming the values specified for the\u003Cbr \u002F>\nmembership_id in the example file match your membership level configuration.\u003C\u002Fp>\n\u003Ch3>The .CSV file from the “Export to CSV” button on the “Members List” page won’t import?\u003C\u002Fh3>\n\u003Cp>The purpose of the resulting .CSV file from the “Export to CSV” is to generate reports that are meaningful to a human,\u003Cbr \u002F>\nnot a file that can be imported easily. This is true for any of the available Import from .CSV plugins\u002Fadd-ons for\u003Cbr \u002F>\nPaid Memberships Pro.\u003C\u002Fp>\n\u003Cp>Basically there are a few key differences between the file resulting from the Export function and the file contents\u003Cbr \u002F>\nneeded to import the same member.\u003C\u002Fp>\n\u003Cp>As of version 2.5, this plugin includes data checks for some of the more common mistakes I’ve seen in the .CSV file(s).\u003C\u002Fp>\n\u003Cp>You should also check out the import example file that is linked on the “Import Members” page (under the “Choose File” button).\u003C\u002Fp>\n\u003Ch3>My import fails, what is wrong?\u003C\u002Fh3>\n\u003Cp>This is almost always related to the data in the file being imported. As a result, I’ve added some data tests for some\u003Cbr \u002F>\nof the typical mistakes I’ve seen in the .CSV file(s) being imported. There is also a link to an example file on the\u003Cbr \u002F>\n“Import Members” page (under the “Choose File” button) that illustrates a functional import file. Things lik what the\u003Cbr \u002F>\nfield names are and the format you’ll most likely need to use for the data in that column.\u003C\u002Fp>\n\u003Cp>Check the wp-content\u002Fuploads\u002Fpmp_im_errors.log log file for details on the import operations (link should also be\u003Cbr \u002F>\nincluded in a wp-admin dashboard notice if there are errors\u002Fwarnings). The log should contain suggestions on some of\u003Cbr \u002F>\nthe more common mistakes in the data being imported.\u003C\u002Fp>\n\u003Ch3>Do I need to include all the columns from the sample file?\u003C\u002Fh3>\n\u003Cp>No. \u003Cstrong>Only\u003C\u002Fstrong> include the columns where you have data to import. I.e, if none of your members need to have their\u003Cbr \u002F>\nmembership end date defined (i.e the membership you’re importing doesn’t have an expiration or it’s a recurring\u003Cbr \u002F>\nmembership with a linked Payment Gateway subscription plan), just remove the column(s) you don’t need. That way,\u003Cbr \u002F>\nthe plugin doesn’t try to import data that isn’t there.\u003C\u002Fp>\n\u003Cp>If a column has no data, you should remove the column and it’s column header from the import file!\u003C\u002Fp>\n\u003Ch3>The plugin didn’t import any membership data!?!\u003C\u002Fh3>\n\u003Cp>This is a pretty common question and the reason is almost always because there is something unexpected in the\u003Cbr \u002F>\n    membership_ portion of the row being imported.\u003C\u002Fp>\n\u003Cp>Most often it’s the date\u002Ftime format for the \u003Ccode>membership_startdate\u003C\u002Fcode> and \u003Ccode>membership_enddate\u003C\u002Fcode> columns.\u003C\u002Fp>\n\u003Cp>If you use MS Excel(tm) to prepare your .CSV file, you’re in for a treat…\u003C\u002Fp>\n\u003Cp>In my experience, MS Excel(tm) is \u003Cem>really\u003C\u002Fem> good at changing the date format in a spreadsheet column to whatever it\u003Cbr \u002F>\nthinks works best (i.e. human readable). (If my sarcasm doesn’t shine through; This actually \u003Cstrong>isn’t\u003C\u002Fstrong> a good thing!)\u003C\u002Fp>\n\u003Cp>However, human readable is often problematic for CSV imports, so you \u003Cstrong>have to make sure\u003C\u002Fstrong> the date format follows the\u003Cbr \u002F>\n    YYYY-MM-DD HH:ii:ss template (where ii = 2 digit minute value). For startdate I’d recommend using \u003Ccode>00:00:00\u003C\u002Fcode> and\u003Cbr \u002F>\nfor the enddate I’d suggest using \u003Ccode>23:59:59\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Just to be clear: The \u003Cstrong>only\u003C\u002Fstrong> date format for the \u003Ccode>membership_startdate\u003C\u002Fcode>, \u003Ccode>membership_enddate\u003C\u002Fcode> and the\u003Cbr \u002F>\n    user_registered columns that this plugin will accept is the MySQL datetime format: YYYY-MM-DD HH:ii:ss.\u003C\u002Fp>\n\u003Cp>\u003Cem>Use anything else and your membership data will not be imported\u003C\u002Fem>!\u003C\u002Fp>\n\u003Cp>You can change the way Microsoft Excel(tm) handles date and time data in the Regional settings, but I’ve yet to\u003Cbr \u002F>\nfigure out what the ideal settings are here. Truth be told, I’m using Apple Numbers and others have had great\u003Cbr \u002F>\nsuccess using Google Sheets to process and export their .CSV files. Because there are alternatives to Microsoft\u003Cbr \u002F>\nExcel(tm) and they seem to work a lot better for this specific task, I’m not at all inclined to spend more time\u003Cbr \u002F>\non fixing something that I view to be a rather significant “bug”[1] in Excel(tm).\u003C\u002Fp>\n\u003Cp>[1] = Being that it’s an intentional usability feature, I realize Microsoft is unlikely to be all that interested\u003Cbr \u002F>\n in fixing this “as designed” capability they’ve implemented.\u003C\u002Fp>\n\u003Ch3>Can this plugin be used to link sponsored members with their sponsors?\u003C\u002Fh3>\n\u003Cp>Yes.\u003C\u002Fp>\n\u003Cp>In version 2.60, we added support for importing Sponsors and their sponsored members. So, if you have the\u003Cbr \u002F>\nPMPro Sponsored Members add-on installed, active and need to link sponsors and their sponsored members\u003Cbr \u002F>\nduring the import with this plugin.\u003C\u002Fp>\n\u003Ch3>Importing the Sponsored user\u003C\u002Fh3>\n\u003Cp>To link sponsored users with their sponsors, add the \u003Ccode>pmprosm_sponsor\u003C\u002Fcode> column to your import file.\u003C\u002Fp>\n\u003Cp>On the data row for the \u003Cstrong>sponsored\u003C\u002Fstrong> user, the \u003Ccode>pmprosm_sponsor\u003C\u002Fcode> column must contain the user key for the sponsor\u003Cbr \u002F>\nyou want to link them with.\u003C\u002Fp>\n\u003Cp>Or, if they don’t have a sponsor, that column must be blank.\u003C\u002Fp>\n\u003Cp>The sponsor key is either the email address they used when registering on your system – or the user_email column\u003Cbr \u002F>\nvalue for their user record if they’re also being imported at the same time, the WordPress user ID value (numeric),\u003Cbr \u002F>\nor the login name used (user_login value).\u003C\u002Fp>\n\u003Ch3>Importing the Sponsor\u003C\u002Fh3>\n\u003Cp>First of all, you will need to include a \u003Ccode>pmprosm_seats\u003C\u002Fcode> column as well. This column contains a numeric value to\u003Cbr \u002F>\nindicate the number of seats (sponsored users) this user has paid to sponsor.\u003C\u002Fp>\n\u003Cp>When importing a sponsor there are a couple of scenarios;\u003C\u002Fp>\n\u003Cp>1) The system already contains the sponsor code (a sponsor code is a PMPro discount code prefixed with the letter ‘S’)\u003Cbr \u002F>\nand you simply need to link the sponsor to their code.\u003C\u002Fp>\n\u003Cp>2) The system lacks the sponsor code, so you’ll need one to be created.\u003C\u002Fp>\n\u003Cp>For scenario 1; The sponsor code (discount code) already has a Discount Code ID (integer value, found on the PMPro\u003Cbr \u002F>\n“Discount Codes” settings page). This ID needs to be added in the \u003Ccode>membership_code_id\u003C\u002Fcode> column of the import file for\u003Cbr \u002F>\nthe sponsor (user record), along with a numeric value in the \u003Ccode>pmprosm_seats\u003C\u002Fcode> column.\u003C\u002Fp>\n\u003Cp>For scenario 2; The sponsor code is created by this plugin. It happens automatically if the sponsor user exists – or\u003Cbr \u002F>\nis being imported at the same time as – when the \u003Cstrong>sponsored\u003C\u002Fstrong> user is attempted imported and linked. The discount\u003Cbr \u002F>\ncode created attempts to use the settings from the PMPro Sponsored Members add-on for the discount code.\u003C\u002Fp>\n\u003Ch3>Caveat\u003C\u002Fh3>\n\u003Cp>The order in which users are listed in the .csv import file can matter when importing sponsors and their sponsored user.\u003C\u002Fp>\n\u003Cp>Although this plugin tries to re-import sponsored users if the import fails the first time, as part of the\u003Cbr \u002F>\nclean-up process, this retry does not guarantee success!\u003C\u002Fp>\n\u003Cp>As a result, it is possible that a sponsored user is imported without being linked to their sponsor.\u003C\u002Fp>\n\u003Cp>You can fix that by running the import more than once.\u003C\u002Fp>\n\u003Cp>Alternatively, you can create two import files;\u003C\u002Fp>\n\u003Cp>One with the sponsor users only, and one with the sponsor\u003Cem>ed\u003C\u002Fem> users only.\u003C\u002Fp>\n\u003Cp>Then import the sponsors first. Next you import the sponsored users.\u003C\u002Fp>\n\u003Ch4>Can this plugin be used to import order data for Paid Memberships Pro?\u003C\u002Fh4>\n\u003Cp>As of version 2.20, we have an option to create member orders at the same time as we update the membership record.\u003C\u002Fp>\n\u003Cp>That means you can now include some of the order table fields to import custom values as needed for each\u003Cbr \u002F>\nuser\u002Fmember, along with updating\u002Fadding their membership level information.\u003C\u002Fp>\n\u003Cp>The supported order record columns are:\u003C\u002Fp>\n\u003Col>\n\u003Cli>paypal_token\u003C\u002Fli>\n\u003Cli>subtotal\u003C\u002Fli>\n\u003Cli>tax\u003C\u002Fli>\n\u003Cli>couponamount\u003C\u002Fli>\n\u003Cli>checkout_id\u003C\u002Fli>\n\u003Cli>certificate_id\u003C\u002Fli>\n\u003Cli>certificateamount\u003C\u002Fli>\n\u003Cli>total\u003C\u002Fli>\n\u003Cli>payment_type\u003C\u002Fli>\n\u003Cli>cardtype\u003C\u002Fli>\n\u003Cli>accountnumber\u003C\u002Fli>\n\u003Cli>expirationmonth\u003C\u002Fli>\n\u003Cli>expirationyear\u003C\u002Fli>\n\u003Cli>status\u003C\u002Fli>\n\u003Cli>gateway\u003C\u002Fli>\n\u003Cli>gateway_environment\u003C\u002Fli>\n\u003Cli>payment_transaction_id\u003C\u002Fli>\n\u003Cli>subscription_transaction_id\u003C\u002Fli>\n\u003Cli>timestamp\u003C\u002Fli>\n\u003Cli>affiliate_id\u003C\u002Fli>\n\u003Cli>affiliate_subid\u003C\u002Fli>\n\u003Cli>notes\u003C\u002Fli>\n\u003Cli>billing_street (*)\u003C\u002Fli>\n\u003Cli>billing_city (*)\u003C\u002Fli>\n\u003Cli>billing_state (*)\u003C\u002Fli>\n\u003Cli>billing_zip (*)\u003C\u002Fli>\n\u003Cli>billing_country (*)\u003C\u002Fli>\n\u003Cli>billing_phone (*)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>All of these columns\u002Ffields should be prefixed with \u003Ccode>membership_\u003C\u002Fcode>. I.e. \u003Ccode>membership_paypal_token\u003C\u002Fcode> or \u003Ccode>membership_tax\u003C\u002Fcode>,\u003Cbr \u002F>\netc. The exceptions are the \u003Ccode>user_id\u003C\u002Fcode> and \u003Ccode>membership_id\u003C\u002Fcode> columns\u002Ffields which should be left as \u003Ccode>user_id\u003C\u002Fcode> and\u003Cbr \u002F>\n    membership_id respectively if you want to include them in the import operation(s).\u003C\u002Fp>\n\u003Cp>The \u003Ccode>status\u003C\u002Fcode> column has a limited number of valid values. By default, we recommend using either \u003Ccode>success\u003C\u002Fcode> or \u003Ccode>cancelled\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>All timestamp values (‘timestamp’) must use the same format as the one used by the MySQL database’s ‘DATETIME’\u003Cbr \u002F>\nformat: \u003Ccode>YYYY-MM-DD HH:MM:SS\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>PLEASE NOTE:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Although you \u003Cem>can\u003C\u002Fem> specify an account number (\u003Ccode>accountnumber\u003C\u002Fcode>) in the import file, doing that will \u003Cem>not\u003C\u002Fem> result in\u003Cbr \u002F>\nthis plugin importing and activating subscriptions or payments by credit card.\u003C\u002Fp>\n\u003Cp>You CANNOT use this tool to import and \u003Cstrong>create\u003C\u002Fstrong> subscription plans, or transactions, on the payment gateway for\u003Cbr \u002F>\nyour Paid Memberships Pro users.\u003C\u002Fp>\n\u003Cp>Including anything other than a masked Credit Card number for the \u003Ccode>membership_accountnumber\u003C\u002Fcode> column \u003Cem>is a really\u003Cbr \u002F>\nbad idea\u003C\u002Fem>[1]!\u003C\u002Fp>\n\u003Cp>A masked credit card number = Only the last 4 digits are real and the rest are repetitions of the ‘X’\u003Cbr \u002F>\ncharacter (\u003Ccode>XXXXXXXXXXXX1234\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>[1] = Importing a full credit card number will exponentially increase the probability that you, in the event of a\u003Cbr \u002F>\nsecurity problem on your site, will have to pay the Payment Card Industry (PCI) massive fines. Simply put; Don’t import\u003Cbr \u002F>\nCredit Card information! Instead, ask your members to resubmit their information when the site is back online\u002Flive.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>This plugin does NOT mask your credit card numbers for you!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>Supported membership_gateway options\u003C\u002Fh3>\n\u003Cp>The Import Members from CSV plugin supports specifying different payment gateways for the user record(s) when\u003Cbr \u002F>\nimporting order data (i.e. the “Attempt to create PMPro Order record” option has been selected). At present, the\u003Cbr \u002F>\npayment gateways that can be specified in the \u003Ccode>membership_gateway\u003C\u002Fcode> column are:\u003C\u002Fp>\n\u003Col>\n\u003Cli>authorizenet\u003C\u002Fli>\n\u003Cli>braintree\u003C\u002Fli>\n\u003Cli>check\u003C\u002Fli>\n\u003Cli>cybersource\u003C\u002Fli>\n\u003Cli>payflowpro\u003C\u002Fli>\n\u003Cli>paypal\u003C\u002Fli>\n\u003Cli>paypalexpress\u003C\u002Fli>\n\u003Cli>paypalstandard\u003C\u002Fli>\n\u003Cli>stripe\u003C\u002Fli>\n\u003Cli>twocheckout\u003C\u002Fli>\n\u003Cli>payfast\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>During the import operation, the plugin will verify that the specified payment gateway integration is one of the\u003Cbr \u002F>\nsupported payment gateway integrations for Paid Memberships Pro.\u003C\u002Fp>\n\u003Cp>Specifying a Payment Gateway Integration that has not been configured for use during the PMPro checkout process would\u003Cbr \u002F>\nrender the order record invalid.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE:\u003C\u002Fstrong> The limitations to how Paid Memberships Pro supports\u002Fhandles multiple payment gateway integrations at the\u003Cbr \u002F>\nsame time still apply.\u003C\u002Fp>\n\u003Ch3>Adding billing address information to the PMPro Order import\u003C\u002Fh3>\n\u003Cp>The normal way to import billing address data to the database for a member\u002Fuser is to use the \u003Ccode>pmpro_b[*]\u003C\u002Fcode> fields\u003Cbr \u002F>\n(\u003Ccode>pmpro_bfirstname\u003C\u002Fcode>, \u003Ccode>pmpro_blastname\u003C\u002Fcode>, \u003Ccode>pmpro_baddress1\u003C\u002Fcode>, \u003Ccode>pmpro_baddress2\u003C\u002Fcode>, \u003Ccode>pmpro_bcity\u003C\u002Fcode>, \u003Ccode>pmpro_bstate\u003C\u002Fcode>,\u003Cbr \u002F>\n    pmpro_bzipcode, \u003Ccode>pmpro_bcountry\u003C\u002Fcode> and \u003Ccode>pmpro_bphone\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>If the \u003Ccode>pmpro_b*\u003C\u002Fcode> field data is present in the row and the ‘Add order’ option is selected for the import file, the\u003Cbr \u002F>\nimport will attempt to populate the order billing information using the \u003Ccode>pmpro_b*\u003C\u002Fcode> data.\u003C\u002Fp>\n\u003Ch4>How should the .csv file be defined?\u003C\u002Fh4>\n\u003Cp>This plugin assumes that the .csv file;\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Uses a comma (,) character to denote a new column in a row\u003C\u002Fli>\n\u003Cli>Uses a double-quote (“) character to wrap the contents of each of the columns\u003C\u002Fli>\n\u003Cli>Uses a backslash () character as the escape character\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For example;\u003Cbr \u002F>\nTo have a 2 column .csv file, each row \u003Cstrong>after\u003C\u002Fstrong> the header row, the row should look something like this:\u003Cbr \u002F>\n    “my first column data”,”my second \\”escaped\\” column data”.\u003C\u002Fp>\n\u003Cp>The application you use to edit and export your .CSV file will need to be configured appropriately before you\u003Cbr \u002F>\nexport the .csv file.\u003C\u002Fp>\n\u003Ch4>Why am I or my users not receiving New user notifications\u003C\u002Fh4>\n\u003Cp>There are a couple of possible reasons, as far as I can tell. The functionality in WordPress that generates the\u003Cbr \u002F>\n“new user notification” message is what they call “pluggable”. That means that it’s possible for a plugin (any plugin!)\u003Cbr \u002F>\nto override the behavior of the functionality. So the first thing I’d suggest investigating is whether you have a\u003Cbr \u002F>\nplugin active that intentionally changes\u002Fmodifies\u002Fupdates how the \u003Ccode>wp_new_user_notification()\u003C\u002Fcode> function works\u002Fbehaves.\u003C\u002Fp>\n\u003Cp>Next, it’s (very) possible that your hosting environment doesn’t want you to be sending out a lot of email messages\u003Cbr \u002F>\nfrom their servers. As a result, the import operation could potentially trip their anti-spam measures and blocking\u003Cbr \u002F>\nyou from sending any messages.\u003C\u002Fp>\n\u003Cp>Third, the recipient email server may be using a SBL (Spam Black List) and have your web server IP listed as a\u003Cbr \u002F>\ntypical source of Spam messages (it happens, a lot).\u003C\u002Fp>\n\u003Ch3>I’ve set the ‘membership_status’ column to ‘inactive’, but the user’s imported membership level is currently ‘active’?\u003C\u002Fh3>\n\u003Cp>This is due to what I’d term a bug in Paid Memberships Pro. This issue doesn’t currently have a fix.\u003C\u002Fp>\n\u003Cp>Basically, the ‘inactive’ status will only apply to the order record (if it’s created, see above) and \u003Cem>not\u003C\u002Fem> to the\u003Cbr \u002F>\nuser’s membership status.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE:\u003C\u002Fstrong> Assigning a membership level for a user will cause them to be given an active membership on the site when\u003Cbr \u002F>\nthe import operation is complete, regardless of the value supplied for the ‘membership_status’ column.\u003C\u002Fp>\n\u003Ch3>How do I import an existing payment plan (recurring billing plan) for a user?\u003C\u002Fh3>\n\u003Cp>This only works if the plan already exists on the payment gateway itself.\u003C\u002Fp>\n\u003Cp>There is no way to use this plugin to import a new member\u002Fuser and have the system create a recurring billing plan\u003Cbr \u002F>\nfor them.\u003C\u002Fp>\n\u003Ch3>Can I use this plugin to create new billing plans or trigger charges on the payment gateway for an imported user?\u003C\u002Fh3>\n\u003Cp>No.\u003C\u002Fp>\n\u003Ch3>What are the constraints for WordPress Multisite import operations?\u003C\u002Fh3>\n\u003Cp>As documented by Paid Memberships Pro, the PMPro plugin cannot be Network Activated.\u003C\u002Fp>\n\u003Cp>This import plugin will work from the site(s) where PMPro is active \u003Cem>and\u003C\u002Fem> have the same membership level IDs\u003Cbr \u002F>\nidentified as are listed in the \u003Ccode>membership_id\u003C\u002Fcode> column of the import file you’re using.\u003C\u002Fp>\n\u003Cp>If your primary site has a configured and active Paid Memberships Pro installation, you could theoretically start\u003Cbr \u002F>\nthe plugin from the Network Admin dashboard (which will send you to the primary site anyway).\u003C\u002Fp>\n\u003Cp>The users being imported will only be linked to the site you import them to. Their membership data will only be\u003Cbr \u002F>\nvisible on the PMPro site(s) that have the membership level ID(s) configured that match those in the import file.\u003C\u002Fp>\n\u003Ch4>Welcome Email Message (imported_welcome.html template) issues\u003C\u002Fh4>\n\u003Cp>If you selected the “Send the imported_member.html welcome email” option and your users still aren’t receiving messages,\u003Cbr \u002F>\nplease make sure the ‘membership_status’ field is included in the import .csv file and contains the \u003Ccode>active\u003C\u002Fcode> value.\u003C\u002Fp>\n\u003Cp>As a design philosophy, we treat an inactive member as somebody who should \u003Cem>not\u003C\u002Fem>  receive welcome messages\u003Cbr \u002F>\n(you may disagree..?)\u003C\u002Fp>\n\u003Ch3>What GDPR impacted data is stored by this plugin?\u003C\u002Fh3>\n\u003Cp>Obviously, there’s the user data that this plugin is designed to import. This plugin does \u003Cem>not\u003C\u002Fem> track, report, or\u003Cbr \u002F>\nallow download\u002Fdeletion of any data it imports. There are (now or soon) other plugin options to handle those\u003Cbr \u002F>\nrequirements from the GDPR legislation.\u003C\u002Fp>\n\u003Cp>In an attempt to make the “Donation” button less intrusive, we attempt to track the computer (IP) address when\u003Cbr \u002F>\nsomebody clicks the button. This plugin does \u003Cem>not\u003C\u002Fem> link the IP address to a user account, so it should be a little\u003Cbr \u002F>\nmore challenging to identify the person who clicked the “Donate” button for any 3rd party who gets access to your\u003Cbr \u002F>\ndatabase than simply looking at the options saved by this plugin.\u003C\u002Fp>\n\u003Cp>The IP tracking information (the IP address) is stored in the WordPress options table (\u003Ccode>wp_options\u003C\u002Fcode>) using the\u003Cbr \u002F>\n    e20r_import_has_donated option name. That option can safely be deleted in the database if you do not wish to have\u003Cbr \u002F>\nIPs tracked. Deleting the option from the database will obviously re-enable the Donation nag.\u003C\u002Fp>\n\u003Cp>As long as this plugin remains installed and active on the server, the tracked IP address will automatically be\u003Cbr \u002F>\nremoved from the option 2 months after the admin clicked the Donation button.\u003C\u002Fp>\n\u003Cp>The option is removed when the plugin is deactivated in the “Plugins” admin panel.\u003C\u002Fp>\n\u003Cp>Nag tracking can be disabled altogether with the \u003Ccode>e20r_import_donation_tracking_disabled\u003C\u002Fcode> filter:\u003Cbr \u002F>\n    add_filter( ‘e20r_import_donation_tracking_disabled’, ‘__return_true’ );’\u003C\u002Fp>\n\u003Ch3>Known Issues\u003C\u002Fh3>\n\u003Cp>N\u002FA\u003C\u002Fp>\n\u003Ch3>Supported Filters and Actions\u003C\u002Fh3>\n\u003Cp>The list of filters and actions supported by this plugin can be found in the \u003Ca href=\".\u002Fdocs\u002FFILTERS.md\" rel=\"nofollow ugc\">Filters\u003C\u002Fa> and\u003Cbr \u002F>\n\u003Ca href=\".\u002Fdocs\u002FACTIONS.md\" rel=\"nofollow ugc\">Actions\u003C\u002Fa> documentation.\u003C\u002Fp>\n","Import and create user + PMPro member records from a CSV file on your WordPress with Paid Memberships Pro website. The plugin will import the membersh &hellip;",100,9822,2,"","5.8.13","5.0","7.3",[28,29,30,31,32],"batch","csv","import","user","users","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpmpro-import-members-from-csv\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpmpro-import-members-from-csv.zip",0,null,"2026-03-15T10:48:56.248Z",{"slug":39,"name":40,"version":41,"author":5,"author_profile":6,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":20,"num_ratings":22,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":23,"tags":49,"homepage":55,"download_link":56,"security_score":57,"vuln_count":35,"unpatched_count":35,"last_vuln_date":36,"fetched_at":58},"administrator-access-to-pmpro-protected-content","Administrator Access to PMPro Protected Content","1.3","\u003Cp>By default Paid Memberships Pro will \u003Cem>not\u003C\u002Fem> let an administrator get access to a protected post or page without making the administrator a member of one of the membership levels that are required for that post\u002Fpage in the “Require Membership” checkboxes in the post\u002Fpage editor.\u003C\u002Fp>\n\u003Cp>This is contrary to what a traditional interpretation of the “Administrator” role represents for WordPress (or any user based security system). People expect the administrator\u002Froot account(s) on the system to have full access to administer and view the content on the site.\u003C\u002Fp>\n\u003Cp>This behavior also represents one of the frequent problems experienced when trying to use a WordPress front-end post or page editor; The expected content for the post\u002Fpage being edited either doesn’t show up, or is being redirected away from.\u003C\u002Fp>\n\u003Cp>This plugin will remove the PMPro access restrictions to content for any user assigned to the WordPress ‘administrator’ role.\u003C\u002Fp>\n\u003Cp>As of version 1.2, the same functionality has been extended to the PMPro [membership] short code.\u003Cbr \u002F>\nThis plugin should be used with caution!\u003C\u002Fp>\n\u003Ch3>Credit\u003C\u002Fh3>\n\u003Cp>This plugin uses \u003Ca href=\"https:\u002F\u002Fwww.freeiconspng.com\u002Fimg\u002F29108\" rel=\"nofollow ugc\">Unlock Hd Icon by Ahkâm\u003C\u002Fa> – Copyright (c) Ahkâm\u003Cbr \u002F>\nThis plugin uses the logo by \u003Ca href=\"https:\u002F\u002Fwww.paid-memberships-pro.com\u002F\" rel=\"nofollow ugc\">Paid Memberships Pro\u003C\u002Fa> – Copyright (c) Stranger Studios, LLC\u003C\u002Fp>\n\u003Ch3>v1.3\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>REFACTOR: Updated to signify support for latest WordPress releases\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>v1.2\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>ENHANCEMENT: Add check override when using [membership] short code\u003C\u002Fli>\n\u003Cli>BUG FIX: Didn’t guarantee false return when user isn’t logged in or not an admin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>v1.1\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>BUG FIX: Didn’t prevent redirect(s) when accessing the Membership Account page\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>v1.0\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Initial release of plugin\u003C\u002Fli>\n\u003C\u002Ful>\n","Overrides the PMPro \"Require Membership\" settings and grants view access to any user assigned to the WordPress \"Administrator\" rol &hellip;",60,2535,"2020-09-16T20:02:00.000Z","5.5.18","4.8",[50,51,52,53,54],"membership","membership-management","page-editor","paid-memberships-pro","pmpro","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadministrator-access-to-pmpro-protected-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadministrator-access-to-pmpro-protected-content.zip",85,"2026-03-15T15:16:48.613Z",{"slug":60,"name":61,"version":62,"author":5,"author_profile":6,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":7,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":77,"download_link":78,"security_score":57,"vuln_count":35,"unpatched_count":35,"last_vuln_date":36,"fetched_at":58},"e20r-members-list","E20R Better Members List for Paid Memberships Pro","8.6","\u003Cp>Extensible, sortable & bulk action capable members listing tool for Paid Memberships Pro. This plugin is a complete replacement for the “Members List” functionality in PMPro and supports most of the same filters and hooks. The key differences have to do with managing columns. Now you can also use the \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Fclasses\u002Fwp_list_table\u002F\" rel=\"nofollow ugc\">standard WordPress filters\u003C\u002Fa> to columns you can add\u002Fremove\u002Fmake sortable, additional bulk actions, etc.\u003C\u002Fp>\n\u003Ch3>Extending the Members List\u003C\u002Fh3>\n\u003Cp>This plugin uses the \u003Ccode>WP_List_Table\u003C\u002Fcode> class to generate the flexible table approach you know and love from the WordPress Post\u002FPage\u002Fetc back-end. As a result, it’s has a standardized and flexible approach to adding columns to the table.\u003C\u002Fp>\n\u003Cp>I’ve also included a number of filters and actions to let a \u003Ca href=\"https:\u002F\u002Feighty20results.com\u002Fneed-something-else\u002F\" rel=\"nofollow ugc\">PHP developer\u003C\u002Fa> expand on the search functionality for the list.\u003C\u002Fp>\n\u003Cp>The same goes for the Export to CSV functionality.\u003C\u002Fp>\n\u003Cp>This plugin should support the standard Paid Memberships Pro filters in order to add new CSV export columns and data.\u003C\u002Fp>\n\u003Ch3>Supported Filters\u003C\u002Fh3>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feighty20results.com\u002Fe20r-members-list\u002Fblob\u002Fmain\u002Fdocs\u002FFILTERS.md\" rel=\"nofollow ugc\">FILTERS.md\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Supported Actions\u003C\u002Fh3>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feighty20results.com\u002Fe20r-members-list\u002Fblob\u002Fmain\u002Fdocs\u002FACTIONS.md\" rel=\"nofollow ugc\">ACTIONS.md\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Known Issues\u003C\u002Fh3>\n\u003Cp>PHP 8.0 and later introduces warning messages for certain behaviors that were ignored prior to v8.0. Because of this, and the fact that this plugin relies on functionality from Paid Memberships Pro, the “end date” column may print messages indicating problems with the \u003Ccode>trim()\u003C\u002Fcode> function. Until Paid Memberships Pro updates their plugin to support PHP8.x, these messages will need to be disabled in your web server configuration (suppressed).\u003C\u002Fp>\n\u003Cp>Setting the “Members per page” in the “Options” drop-down on the Members List page to a number greater than 50 can result in unexpected errors\u002Fwarnings. The default value is 20. One symptom is seeing the PHP warning: “Warning: Unknown: Input variables exceeded 2000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0”\u003C\u002Fp>\n","Extensible, sortable & bulk action capable members listing + export to CSV tool for Paid Memberships Pro.",10,12123,94,"2022-03-27T17:11:00.000Z","5.9.13","4.9","7.1",[73,74,75,53,76],"better-members-list","members","memberships","pmpro-enhancements","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fe20r-members-list","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fe20r-members-list.8.6.zip"]