Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save messica/1252ae30d3d56c172b3d to your computer and use it in GitHub Desktop.
Save messica/1252ae30d3d56c172b3d to your computer and use it in GitHub Desktop.
<?php
/*
Plugin Name: PMPro Custom Import
Plugin URI: http://www.paidmembershipspro.com/wp/pmpro-customizations/
Description: Custom Import Code for PMPro
Version: .1
Author: Stranger Studios
Author URI: http://www.strangerstudios.com
*/
/*
Change some of the user data columns.
*/
function my_is_iu_import_userdata($userdata, $usermeta)
{
//make sure we have a user_login
if(empty($userdata['user_login'])) {
//try some variations
$variations = array('username', 'Username');
foreach($variations as $variation) {
if(!empty($usermeta[$variation]))
$userdata['user_login'] = $usermeta[$variation];
}
}
//make sure we have a user_email
if(empty($userdata['user_email'])) {
//try some variations
$variations = array('email', 'Email');
foreach($variations as $variation) {
if(!empty($usermeta[$variation]))
$userdata['user_email'] = $usermeta[$variation];
}
}
//make sure email is valid
if(!is_email($userdata['user_email']) || stripos($userdata['user_email'], 'noemail') !== false)
$userdata['user_email'] = '';
//if we still don't have a user_login, use email or create one
if(empty($userdata['user_login'])) {
if(!empty($userdata['user_email']))
$userdata['user_login'] = $userdata['user_email'];
else {
//create user_login (user_login = first_name.middle_name.last_name.guard_state)
$user_login = '';
if(!empty($userdata['first_name']))
$user_login = sanitize_title($userdata['first_name']);
if(!empty($userdata['middle_name']))
$user_login .= '.' . sanitize_title($userdata['middle_name']);
if(!empty($userdata['last_name']))
$user_login .= '.' . sanitize_title($userdata['last_name']);
if(!empty($userdata['guard_state']))
$user_login .= '.' . sanitize_title($userdata['guard_state']);
//fix any new hyphens
$user_login = str_replace('-', '.', $user_login);
$userdata['user_login'] = $user_login;
}
}
return $userdata;
}
add_filter('is_iu_import_userdata', 'my_is_iu_import_userdata', 10, 2);
/*
Change some of the user meta columns.
*/
function my_is_iu_import_usermeta($usermeta, $userdata)
{
//fix gender column
if(!empty($usermeta['gender'])) {
if(in_array($usermeta['gender'], array('M', 'Male')))
$usermeta['gender'] = 'male';
elseif(in_array($usermeta['gender'], array('F', 'Female')))
$usermeta['gender'] = 'female';
}
//fix rank column
$usermeta['rank'] = str_replace('SGT', 'Sgt', $usermeta['rank']);
//fix dates
foreach($usermeta as $key=>$value) {
if(strpos('12/31/9999', $value) !== false)
$usermeta[$key] = '';
}
//rename some columns
$usermeta['membership_enddate'] = $usermeta['expires'];
$usermeta['membership_startdate'] = $usermeta['joined'];
$usermeta['import_unit'] = $usermeta['unit'];
return $usermeta;
}
add_filter('is_iu_import_usermeta', 'my_is_iu_import_usermeta', 10, 2);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment