Version Description
- corrected buddypress export option - broken in 0.8.1
- changed get_users arguments, in attempt to reduce memory usage
Download this release
Release Info
Developer | qlstudio |
Plugin | Export User Data |
Version | 0.8.2 |
Comparing to | |
See all releases |
Code changes from version 0.8.1 to 0.8.2
- export-user-data.php +173 -99
- languages/default.mo +0 -0
- languages/default.po +89 -26
- readme.txt +5 -1
export-user-data.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin Name: Export User Data
|
5 |
Plugin URI: http://qstudio.us/plugins/
|
6 |
Description: Export User data, metadata and BuddyPressX Profile data.
|
7 |
-
Version: 0.8.
|
8 |
Author: Q Studio
|
9 |
Author URI: http://qstudio.us
|
10 |
License: GPL2
|
@@ -67,6 +67,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
67 |
add_filter( 'q_eud_exclude_data', array( $this, 'exclude_data' ) );
|
68 |
add_action( 'admin_enqueue_scripts', array( $this, 'add_css_and_js' ), 1 );
|
69 |
add_action( 'admin_footer', array( $this, 'jquery' ), 100000 );
|
|
|
70 |
|
71 |
}
|
72 |
|
@@ -114,48 +115,6 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
114 |
}
|
115 |
|
116 |
|
117 |
-
/* jquery */
|
118 |
-
function jquery()
|
119 |
-
{
|
120 |
-
|
121 |
-
// load the scripts on only the plugin admin page
|
122 |
-
if (isset( $_GET['page'] ) && ( $_GET['page'] == 'export-user-data' ) ) {
|
123 |
-
?>
|
124 |
-
<script>
|
125 |
-
|
126 |
-
// build super multiselect ##
|
127 |
-
jQuery('#usermeta, #bp_fields, #bp_fields_update_time').multiSelect();
|
128 |
-
|
129 |
-
// show only common ##
|
130 |
-
jQuery('.usermeta-common').click(function(e){
|
131 |
-
e.preventDefault();
|
132 |
-
jQuery('#ms-usermeta .ms-selectable li.system').hide();
|
133 |
-
});
|
134 |
-
|
135 |
-
// show all ##
|
136 |
-
jQuery('.usermeta-all').click(function(e){
|
137 |
-
e.preventDefault();
|
138 |
-
jQuery('#ms-usermeta .ms-selectable li').show();
|
139 |
-
});
|
140 |
-
|
141 |
-
// toggle update options ##
|
142 |
-
jQuery(".toggle a").click( function(e) {
|
143 |
-
e.preventDefault();
|
144 |
-
$toggle = jQuery(this).parent().next("div.select");
|
145 |
-
$toggle.toggle();
|
146 |
-
if ( $toggle.is(":visible") ) {
|
147 |
-
jQuery(this).text("Hide Date Options");
|
148 |
-
} else {
|
149 |
-
jQuery(this).text("Show Date Options");
|
150 |
-
}
|
151 |
-
});
|
152 |
-
|
153 |
-
</script>
|
154 |
-
<?php
|
155 |
-
}
|
156 |
-
|
157 |
-
}
|
158 |
-
|
159 |
/**
|
160 |
* Process content of CSV file
|
161 |
*
|
@@ -174,7 +133,8 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
174 |
|
175 |
// build argument array ##
|
176 |
$args = array(
|
177 |
-
'fields' => 'all_with_meta',
|
|
|
178 |
'role' => sanitize_text_field( $_POST['role'] )
|
179 |
);
|
180 |
|
@@ -187,7 +147,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
187 |
|
188 |
}
|
189 |
|
190 |
-
// is
|
191 |
if ( isset( $_POST['limit_from'] ) && $_POST['limit_from'] != '' && isset( $_POST['limit_to'] ) && $_POST['limit_to'] != '' ) {
|
192 |
|
193 |
// let's just make sure they are integer values ##
|
@@ -304,24 +264,27 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
304 |
$exclude_data = apply_filters( 'q_eud_exclude_data', array() );
|
305 |
|
306 |
// check for selected usermeta fields ##
|
307 |
-
$usermeta = isset( $_POST['usermeta'] ) ?
|
308 |
$usermeta_fields = array();
|
309 |
-
|
310 |
-
if ( $usermeta && is_array($usermeta) ) {
|
311 |
foreach( $usermeta as $field ) {
|
312 |
-
$usermeta_fields[] = $field;
|
313 |
}
|
314 |
}
|
|
|
|
|
|
|
315 |
|
316 |
// check for selected x profile fields ##
|
317 |
-
$bp_fields = isset( $_POST['bp_fields'] ) ?
|
318 |
$bp_fields_passed = array();
|
319 |
if ( $bp_fields && is_array($bp_fields) ) {
|
320 |
|
321 |
foreach( $bp_fields as $field ) {
|
322 |
|
323 |
// reverse tidy ##
|
324 |
-
$field = str_replace( '__', ' ', $field );
|
325 |
|
326 |
// add to array ##
|
327 |
$bp_fields_passed[] = $field;
|
@@ -331,14 +294,14 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
331 |
}
|
332 |
|
333 |
// cwjordan: check for x profile fields we want update time for ##
|
334 |
-
$bp_fields_update = isset( $_POST['bp_fields_update_time'] ) ?
|
335 |
$bp_fields_update_passed = array();
|
336 |
if ( $bp_fields_update && is_array( $bp_fields_update ) ) {
|
337 |
|
338 |
foreach( $bp_fields_update as $field ) {
|
339 |
|
340 |
// reverse tidy ##
|
341 |
-
$field = str_replace( '__', ' ', $field );
|
342 |
|
343 |
// add to array ##
|
344 |
$bp_fields_update_passed[] = $field . " Update Date";
|
@@ -417,7 +380,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
417 |
foreach ( $fields as $field ) {
|
418 |
|
419 |
// check if this is a BP field ##
|
420 |
-
if ( isset($bp_data) && isset($bp_data[$field]) && in_array( $field, $bp_fields_passed ) ) {
|
421 |
|
422 |
$value = $bp_data[$field];
|
423 |
|
@@ -426,7 +389,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
426 |
}
|
427 |
$value = $this->sanitize($value);
|
428 |
|
429 |
-
// check if this is a BP field we want
|
430 |
} elseif ( in_array( $field, $bp_fields_update_passed ) ) {
|
431 |
|
432 |
global $bp;
|
@@ -596,6 +559,11 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
596 |
}
|
597 |
?>
|
598 |
</select>
|
|
|
|
|
|
|
|
|
|
|
599 |
</td>
|
600 |
</tr>
|
601 |
<?php
|
@@ -641,6 +609,11 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
641 |
|
642 |
?>
|
643 |
</select>
|
|
|
|
|
|
|
|
|
|
|
644 |
</td>
|
645 |
</tr>
|
646 |
<?php
|
@@ -648,27 +621,27 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
648 |
// allow export of update times ##
|
649 |
|
650 |
?>
|
651 |
-
<tr valign="top">
|
652 |
<th scope="row">
|
653 |
<label for="q_eud_xprofile"><?php _e( 'BP xProfile Fields Update Time', 'export-user-data' ); ?></label>
|
654 |
</th>
|
655 |
<td>
|
656 |
-
<
|
657 |
-
|
658 |
-
</div>
|
659 |
-
<div class="select" style="display: none;">
|
660 |
-
<select multiple="multiple" id="bp_fields_update_time" name="bp_fields_update_time[]">
|
661 |
-
<?php
|
662 |
|
663 |
-
|
664 |
|
665 |
-
|
666 |
|
667 |
-
|
668 |
|
669 |
-
|
670 |
-
|
671 |
-
|
|
|
|
|
|
|
|
|
672 |
</td>
|
673 |
</tr>
|
674 |
<?php
|
@@ -676,7 +649,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
676 |
} // BP installed and active ##
|
677 |
|
678 |
?>
|
679 |
-
<tr valign="top">
|
680 |
<th scope="row"><label for="q_eud_users_role"><?php _e( 'Role', 'export-user-data' ); ?></label></th>
|
681 |
<td>
|
682 |
<select name="role" id="q_eud_users_role">
|
@@ -690,6 +663,13 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
690 |
|
691 |
?>
|
692 |
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
693 |
</td>
|
694 |
</tr>
|
695 |
<?php
|
@@ -698,7 +678,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
698 |
if ( post_type_exists( 'club' ) ) {
|
699 |
|
700 |
?>
|
701 |
-
<tr valign="top">
|
702 |
<th scope="row"><label for="q_eud_users_program"><?php _e( 'Programs', 'export-user-data' ); ?></label></th>
|
703 |
<td>
|
704 |
<select name="program" id="q_eud_users_program">
|
@@ -724,7 +704,7 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
724 |
} // clubs ##
|
725 |
|
726 |
?>
|
727 |
-
<tr valign="top">
|
728 |
<th scope="row"><label><?php _e( 'Registered', 'export-user-data' ); ?></label></th>
|
729 |
<td>
|
730 |
<select name="start_date" id="q_eud_users_start_date">
|
@@ -735,43 +715,28 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
735 |
<option value="0"><?php _e( 'End Date', 'export-user-data' ); ?></option>
|
736 |
<?php $this->export_date_options(); ?>
|
737 |
</select>
|
|
|
|
|
|
|
|
|
|
|
738 |
</td>
|
739 |
</tr>
|
740 |
|
741 |
-
<tr valign="top">
|
742 |
<th scope="row"><label><?php _e( 'Limit Range', 'export-user-data' ); ?></label></th>
|
743 |
<td>
|
744 |
<input name="limit_from" type="text" id="q_eud_users_limit_from" value="" class="regular-text code numeric" style="width: 136px;" placeholder="<?php _e( 'From', 'export-user-data' ); ?>">
|
745 |
<input name="limit_to" type="text" id="q_eud_users_limit_to" value="" class="regular-text code numeric" style="width: 136px;" placeholder="<?php _e( 'To', 'export-user-data' ); ?>">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
746 |
</td>
|
747 |
</tr>
|
748 |
-
<script>
|
749 |
-
|
750 |
-
// lazy load in some jQuery validation ##
|
751 |
-
jQuery(document).ready(function($) {
|
752 |
-
|
753 |
-
$("input.numeric").blur(function() {
|
754 |
-
|
755 |
-
//console.log("you entered "+ $(this).val());
|
756 |
-
|
757 |
-
if ( ! $.isNumeric( $(this).val() ) ) {
|
758 |
-
|
759 |
-
//console.log("this IS NOT a number");
|
760 |
-
$(this).css({ 'background': 'red', 'color': 'white' }); // highlight error ##
|
761 |
-
$("p.submit .button-primary").attr('disabled','disabled'); // disable submit ##
|
762 |
-
|
763 |
-
} else {
|
764 |
-
|
765 |
-
$(this).css({ 'background': 'white', 'color': '#333' }); // remove error highlighting ##
|
766 |
-
$("p.submit .button-primary").removeAttr('disabled'); // enable submit ##
|
767 |
-
|
768 |
-
}
|
769 |
-
|
770 |
-
});
|
771 |
-
|
772 |
-
});
|
773 |
-
|
774 |
-
</script>
|
775 |
|
776 |
<tr valign="top">
|
777 |
<th scope="row"><label for="q_eud_users_format"><?php _e( 'Format', 'export-user-data' ); ?></label></th>
|
@@ -784,17 +749,126 @@ if ( ! class_exists( 'Q_EUD_Export_Users' ) )
|
|
784 |
|
785 |
?>
|
786 |
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
787 |
</td>
|
788 |
</tr>
|
|
|
789 |
</table>
|
790 |
<p class="submit">
|
791 |
<input type="hidden" name="_wp_http_referer" value="<?php echo $_SERVER['REQUEST_URI'] ?>" />
|
792 |
<input type="submit" class="button-primary" value="<?php _e( 'Export', 'export-user-data' ); ?>" />
|
793 |
</p>
|
794 |
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
795 |
<?php
|
|
|
|
|
796 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
797 |
|
|
|
|
|
|
|
798 |
/**
|
799 |
* Data to exclude from export
|
800 |
*/
|
4 |
Plugin Name: Export User Data
|
5 |
Plugin URI: http://qstudio.us/plugins/
|
6 |
Description: Export User data, metadata and BuddyPressX Profile data.
|
7 |
+
Version: 0.8.2
|
8 |
Author: Q Studio
|
9 |
Author URI: http://qstudio.us
|
10 |
License: GPL2
|
67 |
add_filter( 'q_eud_exclude_data', array( $this, 'exclude_data' ) );
|
68 |
add_action( 'admin_enqueue_scripts', array( $this, 'add_css_and_js' ), 1 );
|
69 |
add_action( 'admin_footer', array( $this, 'jquery' ), 100000 );
|
70 |
+
add_action( 'admin_footer', array( $this, 'css' ), 100000 );
|
71 |
|
72 |
}
|
73 |
|
115 |
}
|
116 |
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
/**
|
119 |
* Process content of CSV file
|
120 |
*
|
133 |
|
134 |
// build argument array ##
|
135 |
$args = array(
|
136 |
+
#'fields' => 'all_with_meta',
|
137 |
+
'fields' => 'all', // reduce initial data load and call up required fields inside the loop ##
|
138 |
'role' => sanitize_text_field( $_POST['role'] )
|
139 |
);
|
140 |
|
147 |
|
148 |
}
|
149 |
|
150 |
+
// is the a range limit in place for the export ? ##
|
151 |
if ( isset( $_POST['limit_from'] ) && $_POST['limit_from'] != '' && isset( $_POST['limit_to'] ) && $_POST['limit_to'] != '' ) {
|
152 |
|
153 |
// let's just make sure they are integer values ##
|
264 |
$exclude_data = apply_filters( 'q_eud_exclude_data', array() );
|
265 |
|
266 |
// check for selected usermeta fields ##
|
267 |
+
$usermeta = isset( $_POST['usermeta'] ) ? $_POST['usermeta']: '';
|
268 |
$usermeta_fields = array();
|
269 |
+
|
270 |
+
if ( $usermeta && is_array( $usermeta ) ) {
|
271 |
foreach( $usermeta as $field ) {
|
272 |
+
$usermeta_fields[] = sanitize_text_field ( $field );
|
273 |
}
|
274 |
}
|
275 |
+
|
276 |
+
#pr($usermeta_fields);
|
277 |
+
#exit;
|
278 |
|
279 |
// check for selected x profile fields ##
|
280 |
+
$bp_fields = isset( $_POST['bp_fields'] ) ? $_POST['bp_fields'] : '';
|
281 |
$bp_fields_passed = array();
|
282 |
if ( $bp_fields && is_array($bp_fields) ) {
|
283 |
|
284 |
foreach( $bp_fields as $field ) {
|
285 |
|
286 |
// reverse tidy ##
|
287 |
+
$field = str_replace( '__', ' ', sanitize_text_field ( $field ) );
|
288 |
|
289 |
// add to array ##
|
290 |
$bp_fields_passed[] = $field;
|
294 |
}
|
295 |
|
296 |
// cwjordan: check for x profile fields we want update time for ##
|
297 |
+
$bp_fields_update = isset( $_POST['bp_fields_update_time'] ) ? $_POST['bp_fields_update_time'] : '';
|
298 |
$bp_fields_update_passed = array();
|
299 |
if ( $bp_fields_update && is_array( $bp_fields_update ) ) {
|
300 |
|
301 |
foreach( $bp_fields_update as $field ) {
|
302 |
|
303 |
// reverse tidy ##
|
304 |
+
$field = str_replace( '__', ' ', sanitize_text_field ( $field ) );
|
305 |
|
306 |
// add to array ##
|
307 |
$bp_fields_update_passed[] = $field . " Update Date";
|
380 |
foreach ( $fields as $field ) {
|
381 |
|
382 |
// check if this is a BP field ##
|
383 |
+
if ( isset( $bp_data ) && isset( $bp_data[$field] ) && in_array( $field, $bp_fields_passed ) ) {
|
384 |
|
385 |
$value = $bp_data[$field];
|
386 |
|
389 |
}
|
390 |
$value = $this->sanitize($value);
|
391 |
|
392 |
+
// check if this is a BP field we want the updated date for ##
|
393 |
} elseif ( in_array( $field, $bp_fields_update_passed ) ) {
|
394 |
|
395 |
global $bp;
|
559 |
}
|
560 |
?>
|
561 |
</select>
|
562 |
+
<p class="description"><?php
|
563 |
+
printf(
|
564 |
+
__( 'Select the user meta keys to export, use the filters to simplify the list.', 'export-user-data' )
|
565 |
+
);
|
566 |
+
?></p>
|
567 |
</td>
|
568 |
</tr>
|
569 |
<?php
|
609 |
|
610 |
?>
|
611 |
</select>
|
612 |
+
<p class="description"><?php
|
613 |
+
printf(
|
614 |
+
__( 'Select the BuddyPress XProfile keys to export', 'export-user-data' )
|
615 |
+
);
|
616 |
+
?></p>
|
617 |
</td>
|
618 |
</tr>
|
619 |
<?php
|
621 |
// allow export of update times ##
|
622 |
|
623 |
?>
|
624 |
+
<tr valign="top" class="toggleable">
|
625 |
<th scope="row">
|
626 |
<label for="q_eud_xprofile"><?php _e( 'BP xProfile Fields Update Time', 'export-user-data' ); ?></label>
|
627 |
</th>
|
628 |
<td>
|
629 |
+
<select multiple="multiple" id="bp_fields_update_time" name="bp_fields_update_time[]">
|
630 |
+
<?php
|
|
|
|
|
|
|
|
|
631 |
|
632 |
+
foreach ( $bp_fields as $key ) {
|
633 |
|
634 |
+
echo "<option value='".esc_attr( $key )."' title='".esc_attr( $key )."'>$key</option>";
|
635 |
|
636 |
+
}
|
637 |
|
638 |
+
?>
|
639 |
+
</select>
|
640 |
+
<p class="description"><?php
|
641 |
+
printf(
|
642 |
+
__( 'Select the BuddyPress XProfile keys updated dates to export', 'export-user-data' )
|
643 |
+
);
|
644 |
+
?></p>
|
645 |
</td>
|
646 |
</tr>
|
647 |
<?php
|
649 |
} // BP installed and active ##
|
650 |
|
651 |
?>
|
652 |
+
<tr valign="top" class="toggleable">
|
653 |
<th scope="row"><label for="q_eud_users_role"><?php _e( 'Role', 'export-user-data' ); ?></label></th>
|
654 |
<td>
|
655 |
<select name="role" id="q_eud_users_role">
|
663 |
|
664 |
?>
|
665 |
</select>
|
666 |
+
<p class="description"><?php
|
667 |
+
printf(
|
668 |
+
__( 'Filter the exported users by a WordPress Role. <a href="%s" target="_blank">%s</a>', 'export-user-data' )
|
669 |
+
, esc_html('http://codex.wordpress.org/Roles_and_Capabilities')
|
670 |
+
, 'Codex'
|
671 |
+
);
|
672 |
+
?></p>
|
673 |
</td>
|
674 |
</tr>
|
675 |
<?php
|
678 |
if ( post_type_exists( 'club' ) ) {
|
679 |
|
680 |
?>
|
681 |
+
<tr valign="top" class="toggleable">
|
682 |
<th scope="row"><label for="q_eud_users_program"><?php _e( 'Programs', 'export-user-data' ); ?></label></th>
|
683 |
<td>
|
684 |
<select name="program" id="q_eud_users_program">
|
704 |
} // clubs ##
|
705 |
|
706 |
?>
|
707 |
+
<tr valign="top" class="toggleable">
|
708 |
<th scope="row"><label><?php _e( 'Registered', 'export-user-data' ); ?></label></th>
|
709 |
<td>
|
710 |
<select name="start_date" id="q_eud_users_start_date">
|
715 |
<option value="0"><?php _e( 'End Date', 'export-user-data' ); ?></option>
|
716 |
<?php $this->export_date_options(); ?>
|
717 |
</select>
|
718 |
+
<p class="description"><?php
|
719 |
+
printf(
|
720 |
+
__( 'Pick a start and end user registration date to limit the results.', 'export-user-data' )
|
721 |
+
);
|
722 |
+
?></p>
|
723 |
</td>
|
724 |
</tr>
|
725 |
|
726 |
+
<tr valign="top" class="toggleable">
|
727 |
<th scope="row"><label><?php _e( 'Limit Range', 'export-user-data' ); ?></label></th>
|
728 |
<td>
|
729 |
<input name="limit_from" type="text" id="q_eud_users_limit_from" value="" class="regular-text code numeric" style="width: 136px;" placeholder="<?php _e( 'From', 'export-user-data' ); ?>">
|
730 |
<input name="limit_to" type="text" id="q_eud_users_limit_to" value="" class="regular-text code numeric" style="width: 136px;" placeholder="<?php _e( 'To', 'export-user-data' ); ?>">
|
731 |
+
<p class="description"><?php
|
732 |
+
printf(
|
733 |
+
__( 'Enter an offset start number and a total number to export. <a href="%s" target="_blank">%s</a>', 'export-user-data' )
|
734 |
+
, esc_html('http://codex.wordpress.org/Function_Reference/get_users#Parameters')
|
735 |
+
, 'Codex'
|
736 |
+
);
|
737 |
+
?></p>
|
738 |
</td>
|
739 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
740 |
|
741 |
<tr valign="top">
|
742 |
<th scope="row"><label for="q_eud_users_format"><?php _e( 'Format', 'export-user-data' ); ?></label></th>
|
749 |
|
750 |
?>
|
751 |
</select>
|
752 |
+
<p class="description"><?php
|
753 |
+
printf(
|
754 |
+
__( 'Select the format for the export file.', 'export-user-data' )
|
755 |
+
);
|
756 |
+
?></p>
|
757 |
+
</td>
|
758 |
+
</tr>
|
759 |
+
|
760 |
+
<tr valign="top">
|
761 |
+
<th scope="row">
|
762 |
+
<label for="q_eud_xprofile"><?php _e( 'Advanced Options', 'export-user-data' ); ?></label>
|
763 |
+
</th>
|
764 |
+
<td>
|
765 |
+
<div class="toggle">
|
766 |
+
<a href="#"><?php _e( 'Show', 'export-user-data' ); ?></a>
|
767 |
+
</div>
|
768 |
</td>
|
769 |
</tr>
|
770 |
+
|
771 |
</table>
|
772 |
<p class="submit">
|
773 |
<input type="hidden" name="_wp_http_referer" value="<?php echo $_SERVER['REQUEST_URI'] ?>" />
|
774 |
<input type="submit" class="button-primary" value="<?php _e( 'Export', 'export-user-data' ); ?>" />
|
775 |
</p>
|
776 |
</form>
|
777 |
+
|
778 |
+
<?php
|
779 |
+
}
|
780 |
+
|
781 |
+
|
782 |
+
/**
|
783 |
+
* Inline jQuery
|
784 |
+
* @since 0.8.2
|
785 |
+
*/
|
786 |
+
function jquery()
|
787 |
+
{
|
788 |
+
|
789 |
+
// load the scripts on only the plugin admin page
|
790 |
+
if (isset( $_GET['page'] ) && ( $_GET['page'] == 'export-user-data' ) ) {
|
791 |
+
?>
|
792 |
+
<script>
|
793 |
+
|
794 |
+
// lazy load in some jQuery validation ##
|
795 |
+
jQuery(document).ready(function($) {
|
796 |
+
|
797 |
+
// build super multiselect ##
|
798 |
+
jQuery('#usermeta, #bp_fields, #bp_fields_update_time').multiSelect();
|
799 |
+
|
800 |
+
// show only common ##
|
801 |
+
jQuery('.usermeta-common').click(function(e){
|
802 |
+
e.preventDefault();
|
803 |
+
jQuery('#ms-usermeta .ms-selectable li.system').hide();
|
804 |
+
});
|
805 |
+
|
806 |
+
// show all ##
|
807 |
+
jQuery('.usermeta-all').click(function(e){
|
808 |
+
e.preventDefault();
|
809 |
+
jQuery('#ms-usermeta .ms-selectable li').show();
|
810 |
+
});
|
811 |
+
|
812 |
+
// validate number inputs ##
|
813 |
+
$("input.numeric").blur(function() {
|
814 |
+
|
815 |
+
//console.log("you entered "+ $(this).val());
|
816 |
+
|
817 |
+
if ( $(this).val() && ! $.isNumeric( $(this).val() ) ) {
|
818 |
+
|
819 |
+
//console.log("this IS NOT a number");
|
820 |
+
$(this).css({ 'background': 'red', 'color': 'white' }); // highlight error ##
|
821 |
+
$("p.submit .button-primary").attr('disabled','disabled'); // disable submit ##
|
822 |
+
|
823 |
+
} else {
|
824 |
+
|
825 |
+
$(this).css({ 'background': 'white', 'color': '#333' }); // remove error highlighting ##
|
826 |
+
$("p.submit .button-primary").removeAttr('disabled'); // enable submit ##
|
827 |
+
|
828 |
+
}
|
829 |
+
|
830 |
+
});
|
831 |
+
|
832 |
+
// toggle advanced options ##
|
833 |
+
jQuery(".toggle a").click( function(e) {
|
834 |
+
e.preventDefault();
|
835 |
+
$toggleable = jQuery("tr.toggleable");
|
836 |
+
$toggleable.toggle();
|
837 |
+
if ( $toggleable.is(":visible") ) {
|
838 |
+
jQuery(this).text("<?php _e( 'Hide', 'export-user-data' ); ?>");
|
839 |
+
} else {
|
840 |
+
jQuery(this).text("<?php _e( 'Show', 'export-user-data' ); ?>");
|
841 |
+
}
|
842 |
+
});
|
843 |
+
|
844 |
+
});
|
845 |
+
|
846 |
+
</script>
|
847 |
<?php
|
848 |
+
}
|
849 |
+
|
850 |
}
|
851 |
+
|
852 |
+
|
853 |
+
/**
|
854 |
+
* Inline CSS
|
855 |
+
* @since 0.8.2
|
856 |
+
*/
|
857 |
+
function css()
|
858 |
+
{
|
859 |
+
|
860 |
+
// load the scripts on only the plugin admin page
|
861 |
+
if (isset( $_GET['page'] ) && ( $_GET['page'] == 'export-user-data' ) ) {
|
862 |
+
?>
|
863 |
+
<style>
|
864 |
+
.toggleable { display: none; }
|
865 |
+
</style>
|
866 |
+
<?php
|
867 |
+
}
|
868 |
|
869 |
+
}
|
870 |
+
|
871 |
+
|
872 |
/**
|
873 |
* Data to exclude from export
|
874 |
*/
|
languages/default.mo
CHANGED
Binary file
|
languages/default.po
CHANGED
@@ -1,95 +1,158 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: Export User Data
|
4 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/export-users-to-csv\n"
|
5 |
-
"POT-Creation-Date:
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator: Ray <
|
8 |
"Language-Team: Q Studio <team@qstudio.us>\n"
|
9 |
"Language: en\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
-
"X-Generator: Poedit 1.
|
14 |
"X-Poedit-KeywordsList: _;_e;_n;__\n"
|
15 |
"X-Poedit-Basepath: .\n"
|
16 |
-
"Plural-Forms:
|
17 |
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPath-1: ..\n"
|
20 |
|
21 |
-
#: ../export-user-data.php:
|
22 |
msgid "Export User Data"
|
23 |
msgstr ""
|
24 |
|
25 |
-
#: ../export-user-data.php:
|
26 |
msgid "You do not have sufficient permissions to access this page."
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: ../export-user-data.php:
|
30 |
msgid "No users found."
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: ../export-user-data.php:
|
34 |
msgid "User Meta Fields"
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: ../export-user-data.php:
|
38 |
msgid "Filter"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: ../export-user-data.php:
|
42 |
msgid "All"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: ../export-user-data.php:
|
46 |
msgid "Common"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: ../export-user-data.php:
|
|
|
|
|
|
|
|
|
|
|
50 |
msgid "BP xProfile Fields"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: ../export-user-data.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
msgid "Role"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: ../export-user-data.php:
|
58 |
msgid "All Roles"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: ../export-user-data.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
msgid "Programs"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: ../export-user-data.php:
|
66 |
msgid "All Programs"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: ../export-user-data.php:
|
70 |
-
msgid "
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: ../export-user-data.php:
|
74 |
msgid "Start Date"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: ../export-user-data.php:
|
78 |
msgid "End Date"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: ../export-user-data.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
msgid "Format"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: ../export-user-data.php:
|
86 |
msgid "Excel"
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: ../export-user-data.php:
|
90 |
msgid "CSV"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: ../export-user-data.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
msgid "Export"
|
95 |
msgstr ""
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: Export User Data\n"
|
4 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/export-users-to-csv\n"
|
5 |
+
"POT-Creation-Date: 2014-01-26 00:56+0100\n"
|
6 |
+
"PO-Revision-Date: 2014-01-26 00:56+0100\n"
|
7 |
+
"Last-Translator: Ray <ray@qstudio.us>\n"
|
8 |
"Language-Team: Q Studio <team@qstudio.us>\n"
|
9 |
"Language: en\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 1.6.3\n"
|
14 |
"X-Poedit-KeywordsList: _;_e;_n;__\n"
|
15 |
"X-Poedit-Basepath: .\n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPath-1: ..\n"
|
20 |
|
21 |
+
#: ../export-user-data.php:85 ../export-user-data.php:450
|
22 |
msgid "Export User Data"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: ../export-user-data.php:445
|
26 |
msgid "You do not have sufficient permissions to access this page."
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: ../export-user-data.php:455
|
30 |
msgid "No users found."
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: ../export-user-data.php:511
|
34 |
msgid "User Meta Fields"
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: ../export-user-data.php:513
|
38 |
msgid "Filter"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: ../export-user-data.php:513
|
42 |
msgid "All"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: ../export-user-data.php:513
|
46 |
msgid "Common"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: ../export-user-data.php:564
|
50 |
+
msgid ""
|
51 |
+
"Select the user meta keys to export, use the filters to simplify the list."
|
52 |
+
msgstr ""
|
53 |
+
|
54 |
+
#: ../export-user-data.php:593
|
55 |
msgid "BP xProfile Fields"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: ../export-user-data.php:614
|
59 |
+
msgid "Select the BuddyPress XProfile keys to export"
|
60 |
+
msgstr ""
|
61 |
+
|
62 |
+
#: ../export-user-data.php:626
|
63 |
+
msgid "BP xProfile Fields Update Time"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: ../export-user-data.php:642
|
67 |
+
msgid "Select the BuddyPress XProfile keys updated dates to export"
|
68 |
+
msgstr ""
|
69 |
+
|
70 |
+
#: ../export-user-data.php:653
|
71 |
msgid "Role"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: ../export-user-data.php:658
|
75 |
msgid "All Roles"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: ../export-user-data.php:668
|
79 |
+
#, php-format
|
80 |
+
msgid ""
|
81 |
+
"Filter the exported users by a WordPress Role. <a href=\"%s\" target=\"_blank"
|
82 |
+
"\">%s</a>"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: ../export-user-data.php:682
|
86 |
msgid "Programs"
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: ../export-user-data.php:687
|
90 |
msgid "All Programs"
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: ../export-user-data.php:708
|
94 |
+
msgid "Registered"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: ../export-user-data.php:711
|
98 |
msgid "Start Date"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: ../export-user-data.php:715
|
102 |
msgid "End Date"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: ../export-user-data.php:720
|
106 |
+
msgid "Pick a start and end user registration date to limit the results."
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
#: ../export-user-data.php:727
|
110 |
+
msgid "Limit Range"
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: ../export-user-data.php:729
|
114 |
+
msgid "From"
|
115 |
+
msgstr ""
|
116 |
+
|
117 |
+
#: ../export-user-data.php:730
|
118 |
+
msgid "To"
|
119 |
+
msgstr ""
|
120 |
+
|
121 |
+
#: ../export-user-data.php:733
|
122 |
+
#, php-format
|
123 |
+
msgid ""
|
124 |
+
"Enter an offset start number and a total number to export. <a href=\"%s\" "
|
125 |
+
"target=\"_blank\">%s</a>"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: ../export-user-data.php:742
|
129 |
msgid "Format"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: ../export-user-data.php:747
|
133 |
msgid "Excel"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: ../export-user-data.php:748
|
137 |
msgid "CSV"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: ../export-user-data.php:754
|
141 |
+
msgid "Select the format for the export file."
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: ../export-user-data.php:762
|
145 |
+
msgid "Advanced Options"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: ../export-user-data.php:766 ../export-user-data.php:840
|
149 |
+
msgid "Show"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: ../export-user-data.php:774
|
153 |
msgid "Export"
|
154 |
msgstr ""
|
155 |
+
|
156 |
+
#: ../export-user-data.php:838
|
157 |
+
msgid "Hide"
|
158 |
+
msgstr ""
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: qlstudio
|
|
3 |
Tags: user, users, xprofile, usermeta csv, excel, batch, export, save, download
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 3.8.1
|
6 |
-
Stable tag: 0.8.
|
7 |
License: GPLv2
|
8 |
|
9 |
Export users data, metadata and buddypress xprofile data to a csv or Excel file
|
@@ -58,6 +58,10 @@ Click on the 'Export User Data' link in the 'Users' menu, choose the role and th
|
|
58 |
|
59 |
== Changelog ==
|
60 |
|
|
|
|
|
|
|
|
|
61 |
= 0.8.1 =
|
62 |
* Added experimental range limiter for exports
|
63 |
* Extra input data sanitizing
|
3 |
Tags: user, users, xprofile, usermeta csv, excel, batch, export, save, download
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 3.8.1
|
6 |
+
Stable tag: 0.8.2
|
7 |
License: GPLv2
|
8 |
|
9 |
Export users data, metadata and buddypress xprofile data to a csv or Excel file
|
58 |
|
59 |
== Changelog ==
|
60 |
|
61 |
+
= 0.8.2 =
|
62 |
+
* corrected buddypress export option - broken in 0.8.1
|
63 |
+
* changed get_users arguments, in attempt to reduce memory usage
|
64 |
+
|
65 |
= 0.8.1 =
|
66 |
* Added experimental range limiter for exports
|
67 |
* Extra input data sanitizing
|