Forked from strangerstudios/my_is_iu_import_userdata.php
Last active
August 29, 2015 14:16
-
-
Save messica/1252ae30d3d56c172b3d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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