BBP_Converter::process_callback()
Callback processor
Description
Source
File: bp-forums/admin/converter.php
public function process_callback() {
// Verify intent
check_ajax_referer( 'bbp_converter_process' );
// Bail if user cannot view import page
if ( ! current_user_can( 'bbp_tools_import_page' ) ) {
wp_die( '0' );
}
if ( ! ini_get( 'safe_mode' ) ) {
set_time_limit( 0 );
ini_set( 'memory_limit', '256M' );
ini_set( 'implicit_flush', '1' );
ignore_user_abort( true );
}
// Save step and count so that it can be restarted.
if ( ! get_option( '_bbp_converter_step' ) || ( !empty( $_POST['_bbp_converter_restart'] ) ) ) {
update_option( '_bbp_converter_step', 1 );
update_option( '_bbp_converter_start', 0 );
}
$step = (int) get_option( '_bbp_converter_step', 1 );
$min = (int) get_option( '_bbp_converter_start', 0 );
$count = ! empty( $_POST['_bbp_converter_rows'] ) ? min( max( (int) $_POST['_bbp_converter_rows'], 1 ), 5000 ) : 100;
$max = ( $min + $count ) - 1;
$start = $min;
// Bail if platform did not get saved
$platform = !empty( $_POST['_bbp_converter_platform' ] ) ? sanitize_text_field( $_POST['_bbp_converter_platform' ] ) : get_option( '_bbp_converter_platform' );
if ( empty( $platform ) )
return;
// Include the appropriate converter.
$converter = bbp_new_converter( $platform );
switch ( $step ) {
// STEP 1. Clean all tables.
case 1 :
if ( !empty( $_POST['_bbp_converter_clean'] ) ) {
if ( $converter->clean( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
$this->sync_table( true );
if ( empty( $start ) ) {
$this->converter_output( __( 'No data to clean', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Deleting previously converted data (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
} else {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
}
break;
// STEP 2. Convert users.
case 2 :
if ( !empty( $_POST['_bbp_converter_convert_users'] ) ) {
if ( $converter->convert_users( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No users to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Converting users (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
} else {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
}
break;
// STEP 3. Clean passwords.
case 3 :
if ( !empty( $_POST['_bbp_converter_convert_users'] ) ) {
if ( $converter->clean_passwords( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No passwords to clear', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Delete users WordPress default passwords (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
} else {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
}
break;
// STEP 4. Convert forums.
case 4 :
if ( $converter->convert_forums( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No forums to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Converting forums (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 5. Convert forum parents.
case 5 :
if ( $converter->convert_forum_parents( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No forum parents to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Calculating forum hierarchy (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 6. Convert discussions.
case 6 :
if ( $converter->convert_topics( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No discussions to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Converting discussions (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 7. Stick discussions.
case 7 :
if ( $converter->convert_topic_stickies( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No stickies to stick', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Calculating discussion stickies (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 8. Stick to front discussion (Super Sicky).
case 8 :
if ( $converter->convert_topic_super_stickies( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No super stickies to stick', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Calculating discussion super stickies (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 9. Convert tags.
case 9 :
if ( $converter->convert_tags( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No tags to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Converting discussion tags (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 10. Convert replies.
case 10 :
if ( $converter->convert_replies( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No replies to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Converting replies (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
// STEP 11. Convert reply_to parents.
case 11 :
if ( $converter->convert_reply_to_parents( $start ) ) {
update_option( '_bbp_converter_step', $step + 1 );
update_option( '_bbp_converter_start', 0 );
if ( empty( $start ) ) {
$this->converter_output( __( 'No reply_to parents to convert', 'buddyboss' ) );
}
} else {
update_option( '_bbp_converter_start', $max + 1 );
$this->converter_output( sprintf( __( 'Calculating reply_to parents (%1$s - %2$s)', 'buddyboss' ), $min, $max ) );
}
break;
default :
delete_option( '_bbp_converter_step' );
delete_option( '_bbp_converter_start' );
delete_option( '_bbp_converter_query' );
$this->converter_output( __( 'Conversion Complete', 'buddyboss' ) );
break;
}
}
Changelog
| Version | Description |
|---|---|
| bbPress (r3813) | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.