Changeset 3427042
- Timestamp:
- 12/24/2025 11:06:31 PM (3 months ago)
- Location:
- wp-members/tags/3.5.4.5
- Files:
-
- 12 edited
-
includes/admin/admin.php (modified) (2 diffs)
-
includes/admin/class-wp-members-admin-api.php (modified) (5 diffs)
-
includes/admin/tabs/class-wp-members-admin-tab-about.php (modified) (1 diff)
-
includes/admin/tabs/class-wp-members-admin-tab-filesystem-upgrade.php (modified) (4 diffs)
-
includes/api/api-users.php (modified) (1 diff)
-
includes/api/api-utilities.php (modified) (3 diffs)
-
includes/class-wp-members-api.php (modified) (4 diffs)
-
includes/class-wp-members-filesystem.php (modified) (6 diffs)
-
includes/cli/class-wp-members-cli-filesystem.php (modified) (6 diffs)
-
includes/install.php (modified) (4 diffs)
-
includes/vendor/rocketgeek-utilities/includes/strings.php (modified) (1 diff)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
wp-members/tags/3.5.4.5/includes/admin/admin.php
r3425462 r3427042 41 41 global $wpmem; 42 42 43 add_filter( 'wpmem_admin_tabs', array( 'WP_Members_Admin_Tab_About', 'add_tab' ), 99 ); 44 43 45 if ( $wpmem->captcha ) { 44 46 add_filter( 'wpmem_admin_tabs', array( 'WP_Members_Admin_Tab_Captcha', 'add_tab' ) ); … … 55 57 if ( is_dir( $deprecated_folder ) ) { 56 58 include_once $wpmem->path . 'includes/admin/tabs/class-wp-members-admin-tab-filesystem-upgrade.php'; 57 add_filter( 'wpmem_admin_tabs', array( 'WP_Members_Admin_Filesystem_Upgrade', 'add_tab' ) );58 add_action( 'wpmem_admin_do_tab', array( 'WP_Members_Admin_Filesystem_Upgrade', 'do_tab' ), 17);59 add_filter( 'wpmem_admin_tabs', array( 'WP_Members_Admin_Filesystem_Upgrade', 'add_tab' ), 98 ); 60 add_action( 'wpmem_admin_do_tab', array( 'WP_Members_Admin_Filesystem_Upgrade', 'do_tab' ), 98 ); 59 61 } 60 62 -
wp-members/tags/3.5.4.5/includes/admin/class-wp-members-admin-api.php
r3425462 r3427042 224 224 add_action( 'current_screen', array( $this, 'check_user_folders_for_index' ) ); 225 225 226 // Check for any upgrade notices. 227 add_filter( 'wpmem_admin_notices', array( $this, 'check_for_upgrade_notices' ) ); 228 226 229 } // End of load_hooks() 227 230 … … 245 248 function do_admin_notices() { 246 249 global $wpmem; 250 /** 251 * Filter admin notices. 252 * 253 * @since 3.5.5 254 * 255 * @param array $wpmem->admin_notices Array of admin notices to display. 256 */ 257 $wpmem->admin_notices = apply_filters( 'wpmem_admin_notices', $wpmem->admin_notices ); 247 258 if ( $wpmem->admin_notices ) { 248 259 foreach ( $wpmem->admin_notices as $key => $value ) { 249 echo '<div class="notice notice-' . $value['type']. ' is-dismissible">250 <p><strong>' . $value['notice']. '</strong></p>260 echo '<div class="notice notice-' . esc_attr( $value['type'] ) . ' is-dismissible"> 261 <p><strong>' . wp_kses_post( $value['notice'] ) . '</strong></p> 251 262 </div>'; 252 263 … … 393 404 'emails' => esc_html__( 'Emails', 'wp-members' ), 394 405 'shortcodes' => esc_html__( 'Shortcodes', 'wp-members' ), 395 'about' => esc_html__( 'About WP-Members', 'wp-members' )396 406 ); 397 407 } … … 700 710 $upload_vars = wp_upload_dir( null, false ); 701 711 $wpmem_base_dir = trailingslashit( trailingslashit( $upload_vars['basedir'] ) . wpmem_get_upload_base() ); 702 $wpmem_user_files_dir = $wpmem_base_dir . 'user_files/';712 $wpmem_user_files_dir = $wpmem_base_dir . trailingslashit( wpmem_get_file_dir_hash() ); 703 713 704 714 if ( file_exists( $wpmem_user_files_dir ) ) { … … 723 733 } 724 734 735 function check_for_upgrade_notices( $notices ) { 736 737 // Check for deprecated folder system. 738 $uploads = wp_upload_dir(); 739 $deprecated_folder = trailingslashit( $uploads['basedir'] ) . 'wpmembers/user_files'; 740 if ( is_dir( $deprecated_folder ) ) { 741 $notice_dismissed = get_option( 'wpmem_dismiss_filesystem_upgrade_notice' ); 742 if ( ! $notice_dismissed ) { 743 $notices['deprecated_foldersystem'] = array( 744 'notice' => __( 'The /wpmembers/user_files/ folder is deprecated. Please <a href="' . esc_url( trailingslashit( admin_url() ) . 'options-general.php?page=wpmem-settings&tab=filesystem-upgrade' ) . '">go to the settings page</a> to either upgrade or permanently remove this message.', 'wp-members' ), 745 'type' => 'warning', 746 ); 747 } 748 if ( 'update_filesystem' == wpmem_get( 'wpmem_admin_a' ) ) { 749 if ( false == wpmem_get( 'wpmem_dismiss_filesystem_upgrade_notice' ) ) { 750 $notices['deprecated_foldersystem'] = array( 751 'notice' => __( 'The /wpmembers/user_files/ folder is deprecated. Please <a href="' . esc_url( trailingslashit( admin_url() ) . 'options-general.php?page=wpmem-settings&tab=filesystem-upgrade' ) . '">go to the settings page</a> to either upgrade or permanently remove this message.', 'wp-members' ), 752 'type' => 'warning', 753 ); 754 } elseif ( 1 == wpmem_get( 'wpmem_dismiss_filesystem_upgrade_notice' ) ) { 755 unset( $notices['deprecated_foldersystem'] ); 756 } 757 } 758 } 759 760 // Return any notices. 761 return $notices; 762 } 763 725 764 } // End of WP_Members_Admin_API class. 726 765 -
wp-members/tags/3.5.4.5/includes/admin/tabs/class-wp-members-admin-tab-about.php
r3233562 r3427042 21 21 22 22 class WP_Members_Admin_Tab_About { 23 24 /** 25 * Adds the About tab. 26 * 27 * @param array $tabs The existing admin tabs. 28 * @return array The modified admin tabs. 29 */ 30 static function add_tab( $tabs ) { 31 $tabs['about'] = esc_html__( 'About WP-Members', 'wp-members' ); 32 return $tabs; 33 } 23 34 24 35 /** -
wp-members/tags/3.5.4.5/includes/admin/tabs/class-wp-members-admin-tab-filesystem-upgrade.php
r3425462 r3427042 64 64 $files_to_move = $wpmem->filesystem->get_file_list(); 65 65 $num_to_move = count( $files_to_move ); 66 66 if ( isset( $_POST['wpmem_dismiss_filesystem_upgrade_notice'] ) && 1 == $_POST['wpmem_dismiss_filesystem_upgrade_notice'] ) { 67 update_option( 'wpmem_dismiss_filesystem_upgrade_notice', intval( wpmem_get( 'wpmem_dismiss_filesystem_upgrade_notice', 0, 'post' ) ), false ); 68 } else { 69 if ( isset( $_POST['wpmem_admin_a'] ) && 'update_filesystem' == $_POST['wpmem_admin_a'] && ! isset( $_POST['wpmem_dismiss_filesystem_upgrade_notice'] ) ) { 70 delete_option( 'wpmem_dismiss_filesystem_upgrade_notice' ); 71 } 72 } 67 73 if ( isset( $_POST['update-filesystem-confirm'] ) && 'move' == $_POST['update-filesystem-confirm'] ) { 68 74 $wpmem->filesystem->update_filesystem(); 69 75 $wpmem->filesystem->set_move_complete( true ); 70 76 update_option( 'wpmem_upgrade_filesystem_move_complete', 1, false ); 71 } ?>72 77 } 78 ?> 73 79 <div class="wrap"> 74 80 <form name="update-filesystem-form" id="update-filesystem-form" method="post" action="<?php echo esc_url( wpmem_admin_form_post_url() ); ?>"> … … 117 123 if ( $rmdir ) { 118 124 echo '<p>Deletion was successful.</p>'; 119 delete_option( 'wpmem_upgrade_filesystem_move_complete' ); 125 delete_option( 'wpmem_upgrade_filesystem_move_complete' ); 126 delete_option( 'wpmem_dismiss_filesystem_upgrade_notice' ); 120 127 } else { 121 128 echo '<p>Deletion was not successful. You may need to check directory permissions and/or delete the folder manually</p>'; … … 125 132 <div style="width:500px;"> 126 133 <p> 127 Your current configuration indicates that you have uploaded files within the WP-Members134 Your current configuration indicates that there are uploaded files within the WP-Members 128 135 filesystem in a deprecated configuration. You have the option to move these files. However, 129 136 this cannot be reversed or undone. … … 142 149 before running these actions</strong>. 143 150 </p> 144 151 <p> 152 There is a more thorough explanation of this process 153 <a href="https://rocketgeek.com/release-announcements/wp-members-3-5-4-5-release-notes/">here</a>. 154 Alternative to using this admin panel process, there is a 155 <a href="https://rocketgeek.com/plugins/wp-members/docs/plugin-settings/fields/upgrade-the-wp-members-uploaded-files-using-wp-cli/">WP-CLI process</a> 156 for doing this upgrade. 157 </p> 158 <p> 159 If you chose to either not proceed with the move or do it at 160 a later time, you can permanently disable the admin notice by 161 checking the box below.<br /> 162 <?php 163 $dismiss_upgrade_notice = get_option( 'wpmem_dismiss_filesystem_upgrade_notice' ); 164 $checked = ( $dismiss_upgrade_notice || isset( $_POST['wpmem_dismiss_filesystem_upgrade_notice'] ) ) ? true : false ?> 165 <input type="checkbox" name="wpmem_dismiss_filesystem_upgrade_notice" value="1" <?php checked( 1, $checked ); ?> /> Permanently dismiss the admin notice. 166 </p> 145 167 </div> 146 168 <h3>Step 1: Move the filesystem</h3> -
wp-members/tags/3.5.4.5/includes/api/api-users.php
r3308067 r3427042 1281 1281 function wpmem_get_user_count_by_role( $role ) { 1282 1282 $users = count_users(); 1283 return ( 'all' == $role ) ? $users[' avail_roles'][ $role ] : $users['total_users'];1283 return ( 'all' == $role ) ? $users['total_users'] : $users['avail_roles'][ $role ]; 1284 1284 } 1285 1285 // End of file. -
wp-members/tags/3.5.4.5/includes/api/api-utilities.php
r3425462 r3427042 337 337 function wpmem_get_upload_base() { 338 338 global $wpmem; 339 if ( isset( $wpmem->upload_base ) ) { 340 return $wpmem->upload_base; 341 } 339 return ( isset( $wpmem->upload_base ) ) ? $wpmem->upload_base : "wpmembers"; 342 340 } 343 341 … … 358 356 $base_dir = $upload_vars['basedir']; 359 357 $wpmem_base_dir = trailingslashit( trailingslashit( $base_dir ) . wpmem_get_upload_base() ); 360 $wpmem_user_files_dir = $wpmem_base_dir . 'user_files/';358 $wpmem_user_files_dir = $wpmem_base_dir . trailingslashit( wpmem_get_file_dir_hash() ); 361 359 return array( 362 360 'upload_vars' => $upload_vars, … … 377 375 function wpmem_hash_file_name( $filename ) { 378 376 // How long a random string do we want? 379 $hash_len = 24;377 $hash_len = 36; 380 378 381 379 // Get the file extension. 382 380 $ext = pathinfo( $filename, PATHINFO_EXTENSION ); 383 381 384 if ( preg_match( '/^[a-f0-9]{'. $hash_len . '}-.*/', $filename ) ) { 385 $filename = substr( $filename, $hash_len + 1 ); 386 } 387 388 $key = sha1( random_bytes(32) ); 389 $key = substr( $key, 0, $hash_len ); 390 391 return "$key.$ext"; 382 if ( preg_match( '/^[a-f0-9]{'. $hash_len . '}-.*/', $filename ) ) { 383 $filename = substr( $filename, $hash_len + 1 ); 384 } 385 386 $key = sha1( random_bytes(32) ); 387 $key = substr( $key, 0, $hash_len ); 388 389 $filename = "$key.$ext"; 390 /** 391 * Filter the hashed file name. 392 * 393 * @since 3.5.5 394 * 395 * @param string $filename 396 * @param int $hash_len 397 * @param string $key 398 * @param string $ext 399 */ 400 return apply_filters( 'wpmem_hashed_file_name', $filename, $hash_len, $key, $ext ); 401 } 402 403 /** 404 * Gets or creates a user directory hash. 405 * 406 * @since 3.5.5 407 * 408 * @param int $user_id 409 * @return string $user_dir_hash 410 */ 411 function wpmem_get_user_dir_hash( $user_id ) { 412 $hash_len = 36; 413 $user_dir_hash = get_user_meta( $user_id, 'wpmem_user_dir_hash', true ); 414 if ( ! $user_dir_hash ) { 415 $uid_len = strlen( $user_id ); 416 $user_dir_hash = $user_id . wp_generate_password( ( $hash_len-$uid_len ), false, false ); 417 update_user_meta( $user_id, 'wpmem_user_dir_hash', $user_dir_hash ); 418 } 419 /** 420 * Filter the user directory hash. 421 * 422 * @since 3.5.5 423 * 424 * @param string $user_dir_hash 425 * @param int $hash_len 426 * @param int $user_id 427 */ 428 return apply_filters( 'wpmem_user_dir_hash', $user_dir_hash, $hash_len, $user_id ); 429 } 430 431 /** 432 * Gets or creates the file directory hash. 433 * 434 * @since 3.5.5 435 * 436 * @return string $dir_hash 437 */ 438 function wpmem_get_file_dir_hash() { 439 $hash_len = 36; 440 $dir_hash = get_option( 'wpmem_file_dir_hash' ); 441 if ( ! $dir_hash ) { 442 $dir_hash = wp_generate_password( $hash_len, false, false ); 443 update_option( 'wpmem_file_dir_hash', $dir_hash ); 444 } 445 /** 446 * Filter the file directory hash. 447 * 448 * @since 3.5.5 449 * 450 * @param string $dir_hash 451 * @param int $hash_len 452 */ 453 return apply_filters( 'wpmem_file_dir_hash', 'user_files_' . $dir_hash, $hash_len ); 392 454 } 393 455 -
wp-members/tags/3.5.4.5/includes/class-wp-members-api.php
r3425462 r3427042 236 236 return ( in_array( $meta, $this->get_wp_users_fields() ) ) ? true : false; 237 237 } 238 238 239 239 /** 240 240 * Uploads file from the user. … … 316 316 */ 317 317 function file_upload_dir( $param ) { 318 319 global $wpmem;320 318 321 319 $user_id = ( isset( $this->file_user_id ) ) ? $this->file_user_id : null; 322 323 $user_dir = $wpmem->api->get_user_dir_hash( $user_id ); 320 321 $file_dir = wpmem_get_file_dir_hash(); 322 $user_dir = wpmem_get_user_dir_hash( $user_id ); 324 323 325 324 $args = array( 326 'user_id' => $user_id, 327 'wpmem_dir' => wpmem_get_upload_base(), 328 'user_dir' => $user_dir, 329 'basedir' => $param['basedir'], 330 'baseurl' => $param['baseurl'] 325 'user_id' => $user_id, 326 'wpmem_dir' => wpmem_get_upload_base(), 327 'user_dir' => trailingslashit( $file_dir ) . $user_dir, 328 'basedir' => $param['basedir'], 329 'baseurl' => $param['baseurl'], 330 'file_hash' => $file_dir, 331 'user_hash' => $user_dir, 331 332 ); 332 333 … … 335 336 * 336 337 * @since 3.1.0 337 * @since 3.5.5 Added base vals to args.338 * @since 3.5.5 Added base vals and hashes to args. 338 339 * 339 340 * @param array $args … … 348 349 } 349 350 350 /**351 * Gets the filesystem hash for a user.352 *353 * @since 3.5.5354 */355 public function get_user_dir_hash( $user_id ) {356 357 $args = array();358 $args['user_id'] = $user_id;359 360 // How long of a hash?361 $args['hash_len'] = 24;362 363 $args['dir_hash'] = get_option( 'wpmem_file_dir_hash' );364 if ( ! $args['dir_hash'] ) {365 $args['dir_hash'] = wp_generate_password( $args['hash_len'], false, false );366 update_option( 'wpmem_file_dir_hash', $args['dir_hash'] );367 }368 369 // Check if user already has a directory hash.370 $args['user_dir_hash'] = get_user_meta( $user_id, 'wpmem_user_dir_hash', true );371 if ( ! $args['user_dir_hash'] ) {372 $uid_len = strlen( $user_id );373 $args['user_dir_hash'] = $user_id . wp_generate_password( ( $args['hash_len']-$uid_len ), false, false );374 update_user_meta( $user_id, 'wpmem_user_dir_hash', $args['user_dir_hash'] );375 }376 377 $combined = trailingslashit( 'user_files_' . $args['dir_hash'] ) . $args['user_dir_hash'];378 379 /**380 * Filter the path.381 *382 * @since 3.5.5383 */384 return apply_filters( 'wpmem_user_dir_hash', $combined, $args );385 }386 387 351 } // End of WP_Members_Utilties class. -
wp-members/tags/3.5.4.5/includes/class-wp-members-filesystem.php
r3425462 r3427042 72 72 if ( $results ) { 73 73 74 // How long of a hash? 75 $hash_len = 24; 76 77 $dir_hash = get_option( 'wpmem_file_dir_hash' ); 78 if ( ! $dir_hash ) { 79 $dir_hash = wp_generate_password( $hash_len, false, false ); 80 update_option( 'wpmem_file_dir_hash', $dir_hash ); 81 } 82 83 $new_dir_location = trailingslashit( '/wpmembers/user_files_' . $dir_hash ); 74 $new_dir_location = trailingslashit( '/wpmembers/' . wpmem_get_file_dir_hash() ); 84 75 // If new_dir_location does not exist, create it. 85 76 if ( ! is_dir( $this->basedir . $new_dir_location ) ) { … … 98 89 } 99 90 91 // Set up progress bar for WP-CLI. 92 if ( defined( 'WP_CLI' ) && WP_CLI ) { 93 $count = count( $results ); 94 $progress = \WP_CLI\Utils\make_progress_bar( 'Moving uploaded user files.', $count ); 95 } 96 100 97 foreach ( $results as $result ) { 101 98 … … 104 101 105 102 // User ID dir 106 $user_dir_hash = get_user_meta( $user_id, 'wpmem_user_dir_hash', true ); 107 if ( ! $user_dir_hash ) { 108 $uid_len = strlen( $user_id ); 109 $user_dir_hash = $user_id . wp_generate_password( ( $hash_len-$uid_len ), false, false ); 110 update_user_meta( $user_id, 'wpmem_user_dir_hash', $user_dir_hash ); 111 } 103 $user_dir_hash = wpmem_get_user_dir_hash( $user_id ); 112 104 113 105 // File name 114 $ext = pathinfo( $guid, PATHINFO_EXTENSION ); 115 $key = sha1( random_bytes(24) ); 116 $key = substr( $key, 0, $hash_len ); 117 118 $new_dir = $new_dir_location . trailingslashit( $user_dir_hash ) . $key; 106 $filename = wpmem_hash_file_name( basename( get_attached_file( $result->ID ) ) ); 119 107 120 108 // Move location. 121 $new_file_path = $this->basedir . $new_dir . "." . $ext;109 $new_file_path = $this->basedir . $new_dir_location . trailingslashit( $user_dir_hash ) . $filename; 122 110 123 111 $do_move = $this->move_attachment_file( $result->ID, $new_file_path ); … … 126 114 $this->errors[ $user_id ] = $do_move->get_error_message(); 127 115 } 116 117 if ( defined( 'WP_CLI' ) && WP_CLI ) { 118 $progress->tick(); 119 } 120 } 121 122 if ( defined( 'WP_CLI' ) && WP_CLI ) { 123 $progress->finish(); 128 124 } 129 125 } … … 237 233 // Get all files and folders in the directory. 238 234 $items = scandir( $dir ); 235 239 236 // Loop through items in the directory. 240 237 foreach ( $items as $item ) { … … 253 250 } 254 251 } 252 255 253 // Remove the main directory. 256 254 return rmdir( $dir ); -
wp-members/tags/3.5.4.5/includes/cli/class-wp-members-cli-filesystem.php
r3425462 r3427042 12 12 } 13 13 14 /** 15 * List files that need to be moved. 16 * 17 * ## OPTIONS 18 * 19 * [--page=<page>] 20 * : Current page of results to display. Default is 1. 21 * 22 * [--per_page=<per_page>] 23 * : Number of results to display per page. Default is 20. 24 * 25 * ## EXAMPLES 26 * 27 * wp mem fs-upgrade list --page=1 --per_page=10 28 */ 14 29 public function list( $args, $assoc_args ) { 15 30 global $wpmem; 16 31 $files_to_move = $wpmem->filesystem->get_file_list(); 17 32 if ( empty( $files_to_move ) ) { 18 WP_CLI::line( 'There are no files to move.');33 WP_CLI::line( WP_CLI::colorize( '%gThere are no files to move.%n' ) ); 19 34 } else { 20 35 … … 25 40 'number' => intval( $per_page ), 26 41 'offset' => intval( $current_page ) 27 ); 42 ); 28 43 29 44 $total_items = count( $files_to_move ); … … 44 59 'user_email' => $user->user_email, 45 60 'file id' => $file->ID, 46 'path ' => get_attached_file($file->ID)61 'path (in wp-content/uploads)' => wpmem_get_sub_str( '/wpmembers/user_files', get_attached_file( $file->ID ) ) 47 62 ); 48 63 } 49 $formatter = new \WP_CLI\Formatter( $assoc_args, array( 'user id', 'user_email', 'file id', 'path ' ) );64 $formatter = new \WP_CLI\Formatter( $assoc_args, array( 'user id', 'user_email', 'file id', 'path (in wp-content/uploads)' ) ); 50 65 $formatter->display_items( $list ); 51 66 … … 53 68 } 54 69 70 /** 71 * Move files to new directory structure. 72 * 73 * ## EXAMPLES 74 * 75 * wp mem fs-upgrade move 76 */ 55 77 public function move( $args, $assoc_args ) { 78 79 WP_CLI::line( 'This will move all files in the WP-Members uploads directory to a new directory structure.' ); 80 WP_CLI::line( 'Files are not deleted but the attachment data is updated in the database.' ); 81 WP_CLI::line( 'Make sure you have backed up your database.' ); 82 WP_CLI::confirm( 'Are you sure you want to continue?' ); 83 56 84 global $wpmem; 57 85 $wpmem->filesystem->update_filesystem(); … … 59 87 WP_CLI::error( 'There were errors' ); 60 88 foreach ( $wpmem->filesystem->get_errors() as $user_id => $error ) { 89 $user = get_userdata( $user_id ); 61 90 $list[] = array( 62 91 'user_id' => $user_id, 92 'user_email' => $user->user_email, 63 93 'error' => $error 64 94 ); 65 95 } 66 96 WP_CLI::line( 'Attempts to move uploads for the following user IDs returned an error:' ); 67 $formatter = new \WP_CLI\Formatter( $assoc_args, array( 'user_id', ' error' ) );97 $formatter = new \WP_CLI\Formatter( $assoc_args, array( 'user_id', 'user_email', 'error' ) ); 68 98 $formatter->display_items( $list ); 69 99 } else { … … 74 104 } 75 105 106 /** 107 * Delete old uploads directory. 108 * 109 * ## EXAMPLES 110 * 111 * wp mem fs-upgrade delete 112 */ 76 113 public function delete( $args, $assoc_args ) { 77 114 global $wpmem; 78 115 WP_CLI::confirm( 'This will delete all files in uploads/wpmembers/user_files/ and cannot be undone. Are you sure?' ); 79 $rmdir = $wpmem->filesystem->delete_directory( trailingslashit( $wpmem->filesystem->basedir ) . 'wpmembers/user_files ' );116 $rmdir = $wpmem->filesystem->delete_directory( trailingslashit( $wpmem->filesystem->basedir ) . 'wpmembers/user_files/' ); 80 117 if ( $rmdir ) { 81 118 WP_CLI::success( 'Deletion of old directory successful.' ); -
wp-members/tags/3.5.4.5/includes/install.php
r3331571 r3427042 612 612 $upload_vars = wpmem_upload_dir(); 613 613 614 $users_to_check = get_users( array( 'fields'=>'ID' ));614 //$users_to_check = get_users( array( 'fields'=>'ID' )); 615 615 616 616 if ( file_exists( $upload_vars['wpmem_user_files_dir'] ) ) { … … 630 630 } 631 631 632 // User files are being moved in bulk and this will be handled in the move. 633 // Left the above to create the new dir and setup. 634 /* 632 635 if ( file_exists( $upload_vars['wpmem_user_files_dir'] ) ) { 633 636 … … 644 647 } 645 648 } 649 */ 646 650 } 647 651 … … 715 719 716 720 $show_release_notes = true; 717 $release_notes_link = "https://rocketgeek.com/release-announcements/wp-members-3-5-4- 2/";721 $release_notes_link = "https://rocketgeek.com/release-announcements/wp-members-3-5-4-5/"; 718 722 719 723 if ( 'new_install' == $wpmem->install_state ) { -
wp-members/tags/3.5.4.5/includes/vendor/rocketgeek-utilities/includes/strings.php
r3292820 r3427042 99 99 if ( 'before' == $position ) { 100 100 $new = ( substr( $haystack, 0, $pos ) ); 101 $new = ( $keep_needle ) ? $ string . $needle: $new;101 $new = ( $keep_needle ) ? $needle . $new : $new; 102 102 } elseif ( 'after' == $position ) { 103 103 $new = ( substr( $haystack, $pos+strlen( $needle ) ) ); 104 $new = ( $keep_needle ) ? $needle . $ string: $new;104 $new = ( $keep_needle ) ? $needle . $new : $new; 105 105 } elseif ( 'split' == $position ) { 106 106 $before = ( substr( $haystack, 0, $pos ) ); -
wp-members/tags/3.5.4.5/readme.txt
r3425462 r3427042 4 4 Requires at least: 4.0 5 5 Tested up to: 6.9 6 Stable tag: 3.5.4. 46 Stable tag: 3.5.4.5 7 7 License: GPLv3 8 8 License URI: https://www.gnu.org/licenses/gpl-3.0.html
Note: See TracChangeset
for help on using the changeset viewer.