0, ',' => 0, "\t" => 0, "|" => 0 ); $handle = @fopen( $file, "r" ); $firstLine = fgets( $handle ); fclose( $handle ); foreach( $delimiters as $delimiter => &$count ) { $count = count( str_getcsv( $firstLine, $delimiter ) ); } return array_search( max( $delimiters ), $delimiters ); } function user_id_exists( $user_id ){ if ( get_userdata( $user_id ) === false ) return false; else return true; } function get_roles_by_user_id( $user_id ){ $roles = array(); $user = new WP_User( $user_id ); if ( !empty( $user->roles ) && is_array( $user->roles ) ) { foreach ( $user->roles as $role ) $roles[] = $role; } return $roles; } static function get_editable_roles( $include_no_role = true ){ global $wp_roles; $all_roles = $wp_roles->roles; $editable_roles = apply_filters('editable_roles', $all_roles); $list_editable_roles = array(); foreach ($editable_roles as $key => $editable_role) $list_editable_roles[$key] = translate_user_role( $editable_role["name"] ); if( $include_no_role ) $list_editable_roles['no_role'] = __( 'No role', 'import-users-from-csv-with-meta' ); return $list_editable_roles; } static function get_csv_delimiters_titles(){ return array( 'COMMA' => __( 'Comma', 'import-users-from-csv-with-meta' ), 'COLON' => __( 'Colon', 'import-users-from-csv-with-meta' ), 'SEMICOLON' => __( 'Semicolon', 'import-users-from-csv-with-meta' ), 'TAB' => __( 'Tab', 'import-users-from-csv-with-meta' ), ); } static function get_list_users_with_display_name(){ $blogusers = get_users( array( 'fields' => array( 'ID', 'display_name' ) ) ); $result = array(); foreach ( $blogusers as $bloguser ) $result[ $bloguser->ID ] = $bloguser->display_name; return $result; } static function get_loaded_periods(){ $loaded_periods = wp_get_schedules(); $result = array(); foreach ( $loaded_periods as $key => $value ) $result[ $key ] = $value['display']; return $result; } function get_seconds_by_period( $period ){ $loaded_periods = wp_get_schedules(); return isset( $loaded_periods[ $period ] ) ? $loaded_periods[ $period ]['interval'] : 0; } static function get_errors_by_row( $errors, $row, $type = 'error' ){ $errors_found = array(); foreach( $errors as $error ){ if( $error['row'] == $row && ( $error['type'] == $type || 'any' == $type ) ){ $errors_found[] = $error['message']; } } return $errors_found; } function string_conversion( $string ){ $use_mb = function_exists( 'mb_convert_encoding' ); if ( $use_mb ) { $encoding = mb_detect_encoding( $string, mb_detect_order(), true ); if ( $encoding ) { $string = mb_convert_encoding( $string, 'UTF-8', $encoding ); } else { $string = mb_convert_encoding( $string, 'UTF-8', 'UTF-8' ); } } else { $string = wp_check_invalid_utf8( $string, true ); } return $string; } function get_wp_users_fields(){ return array( "id", "user_email", "user_nicename", "user_url", "display_name", "nickname", "first_name", "last_name", "description", "jabber", "aim", "yim", "user_registered", "password", "user_pass", "locale", "show_admin_bar_front", "user_login" ); } function get_restricted_fields(){ $wp_users_fields = $this->get_wp_users_fields(); $wp_min_fields = array( "Username", "Email", "role" ); $acui_restricted_fields = array_merge( $wp_users_fields, $wp_min_fields ); return apply_filters( 'acui_restricted_fields', $acui_restricted_fields ); } function get_not_meta_fields(){ return apply_filters( 'acui_not_meta_fields', array() ); } function get_random_unique_username( $prefix = '' ){ do { $rnd_str = sprintf("%06d", mt_rand(1, 999999)); } while( username_exists( $prefix . $rnd_str ) ); return $prefix . $rnd_str; } function array_one_dimension($array) { $one_dimension = true; array_walk_recursive($array, function ($value) use (&$one_dimension) { if( is_array( $value ) ) { $one_dimension = false; } }); return $one_dimension; } function array_correlative_index( $array ) { if( !is_array( $array ) ) { return false; } $expectedKey = 0; foreach( $array as $key => $value ) { if ($key !== $expectedKey) { return false; } $expectedKey++; } return true; } function array_contains_wp_error( $array ) { foreach( $array as $key => $value ){ if( is_wp_error( $value ) ) return true; } return false; } function new_error( $row, $message = '', $type = 'error' ){ global $errors_totals; switch( $type ){ case 'error': $errors_totals['errors']++; break; case 'warning': $errors_totals['warnings']++; break; case 'notice': $errors_totals['notices']++; break; } return array( 'row' => $row, 'message' => $message, 'type' => $type ); } function maybe_update_email( $user_id, $email, $password, $update_emails_existing_users, $original_email ){ $user_object = get_user_by( 'id', $user_id ); if( $user_object->user_email == $email || ( apply_filters( 'acui_allow_no_email', false ) && empty( $original_email ) ) ) return $user_id; switch( $update_emails_existing_users ){ case 'yes': $user_id = wp_update_user( array( 'ID' => $user_id, 'user_email' => $email ) ); break; case 'no': $user_id = 0; break; case 'create': $user_id = wp_insert_user( array( 'user_login' => $this->get_random_unique_username( 'duplicated_username_' ), 'user_email' => $email, 'user_pass' => $password ) ); break; } return $user_id; } static function get_attachment_id_by_url( $url ) { $wp_upload_dir = wp_upload_dir(); $dir = set_url_scheme( trailingslashit( $wp_upload_dir['baseurl'] ), 'relative' ); if( !is_string( $url ) ) return false; if ( false !== strpos( $url, $dir ) ) { $file = basename( $url ); $query_args = array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'fields' => 'ids', 'meta_query' => array( array( 'key' => '_wp_attachment_metadata', 'compare' => 'LIKE', 'value' => $file, ), ), ); $query = new WP_Query( $query_args ); if ( $query->have_posts() ) { foreach ( $query->posts as $attachment_id ) { $meta = wp_get_attachment_metadata( $attachment_id ); $original_file = basename( $meta['file'] ); $cropped_files = wp_list_pluck( $meta['sizes'], 'file' ); if ( $original_file === $file || in_array( $file, $cropped_files ) ) { return (int) $attachment_id; } } } } return false; } static function get_post_id_by_slug( $slug ){ global $wpdb; $page_path = rawurlencode( urldecode( $slug ) ); $page_path = str_replace( '%2F', '/', $page_path ); $page_path = str_replace( '%20', ' ', $page_path ); $parts = explode( '/', trim( $page_path, '/' ) ); $parts = array_map( 'sanitize_title_for_query', $parts ); $escaped_parts = esc_sql( $parts ); $in_string = "'" . implode( "','", $escaped_parts ) . "'"; $pages = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_name, post_parent, post_type FROM $wpdb->posts WHERE post_name IN (%s)", $in_string ), OBJECT_K ); $revparts = array_reverse( $parts ); $foundid = 0; foreach ( (array) $pages as $page ) { if ( $page->post_name == $revparts[0] ) { $count = 0; $p = $page; while ( 0 != $p->post_parent && isset( $pages[ $p->post_parent ] ) ) { $count++; $parent = $pages[ $p->post_parent ]; if ( ! isset( $revparts[ $count ] ) || $parent->post_name != $revparts[ $count ] ) { break; } $p = $parent; } if ( 0 == $p->post_parent && count( $revparts ) == $count + 1 && $p->post_name == $revparts[ $count ] ) { $foundid = $page->ID; if ( $page->post_type == $p->post_type ) { break; } } } } return $foundid; } function print_table_header_footer( $headers ){ ?>

" . esc_html( $element ) . ""; endforeach; ?> " . esc_html( $element ) . ""; endforeach; ?>
" . ($row - 1) . ""; foreach ( $data as $element ){ if( is_wp_error( $element ) ) $element = $element->get_error_message(); elseif( is_object( $element ) ){ $element = serialize( $element ); } elseif( is_array( $element ) ){ $element_string = ''; $i = 0; foreach( $element as $it => $el ){ if( is_wp_error( $el ) ) $element_string .= $el->get_error_message(); elseif( is_array( $el ) || is_object( $el ) ) $element_string .= serialize( $el ); elseif( !is_int( $it ) ) $element_string .= $it . "=>" . $el; else $element_string .= $el; if(++$i !== count( $element ) ){ $element_string .= ','; } } $element = $element_string; } $element = esc_html( $element ); echo "$element"; } echo "\n"; flush(); } function print_errors( $errors ){ if( empty( $errors ) ) return; ?>


here to see results or you can do a new import.', 'import-users-from-csv-with-meta' ), get_admin_url( null, 'users.php' ), get_admin_url( null, 'tools.php?page=acui&tab=homepage' ) ); ?>

" ) === false ) return explode( "::", $value ); $array_prepared = array(); foreach( explode( "::", $value ) as $data ){ $key_value = explode( "=>", $data ); $array_prepared[ $key_value[0] ] = $key_value[1]; } return $array_prepared; } static function get_value_from_row( $key, $headers, $row, $user_id = 0 ){ $pos = array_search( $key, $headers ); if( $pos === false ){ return ( $user_id == 0 ) ? false : get_user_meta( $user_id, $key, true ); } return $row[ $pos ]; } static function show_meta( $user_id, $meta_key ){ $user_meta = get_user_meta( $user_id, $meta_key, true ); return is_array( $user_meta ) ? var_export( $user_meta, true ) : $user_meta; } function maybe_disable_wordpress_core_emails(){ if( !get_option('acui_automatic_wordpress_email') ){ add_filter( 'send_email_change_email', function() { return false; }, PHP_INT_MAX ); add_filter( 'send_password_change_email', function() { return false; }, PHP_INT_MAX ); } } function maybe_enable_wordpress_core_emails(){ if( !get_option('acui_automatic_wordpress_email') ){ remove_filter( 'send_email_change_email', function() { return false; }, 999 ); remove_filter( 'send_password_change_email', function() { return false; }, 999 ); } } // notices static function get_notices(){ $notices = get_transient( 'acui_notices' ); delete_transient( 'acui_notices' ); return is_array( $notices ) ? $notices : array(); } static function add_notice( $notice ){ $notices = self::get_notices(); $notices[] = $notice; set_transient( 'acui_notices', $notices, 120 ); } function get_notice(){ $notices = self::get_notices(); if( count( $notices ) == 0 ) return false; $return = ''; foreach( $notices as $key => $notice ){ $return = $notice; unset( $notices[ $key ] ); set_transient( 'acui_notices', $notices ); return $return; } return false; } } function ACUIHelper(){ return ACUI_Helper::instance(); }