BPMediaAlbumimporter::bpmedia_ajax_import_callback PHP Method

bpmedia_ajax_import_callback() static public method

static public bpmedia_ajax_import_callback ( )
    static function bpmedia_ajax_import_callback()
    {
        if (!check_ajax_referer('bpmedia-bpalbumimporter', 'rtm_wpnonce')) {
            wp_send_json(false);
        }
        $page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT);
        $count = filter_input(INPUT_GET, 'count', FILTER_SANITIZE_NUMBER_INT);
        $page = isset($page) ? $page : 1;
        $count = isset($count) ? $count : 5;
        $bp_album_data = BPMediaAlbumimporter::batch_import($count);
        global $wpdb;
        $table = $wpdb->base_prefix . 'bp_album';
        $activity_table = $wpdb->base_prefix . 'bp_activity';
        $activity_meta_table = $wpdb->base_prefix . 'bp_activity_meta';
        $comments = 0;
        foreach ($bp_album_data as &$bp_album_item) {
            if (get_site_option('bp_media_bp_album_importer_base_path') === '') {
                $base_path = pathinfo($bp_album_item->pic_org_path);
                update_site_option('bp_media_bp_album_importer_base_path', $base_path['dirname']);
            }
            $bpm_host_wp = new BPMediaHostWordpress();
            $bpm_host_wp->check_and_create_album(0, 0, $bp_album_item->owner_id);
            $album_id = BPMediaAlbumimporter::create_album($bp_album_item->owner_id, 'Imported Media');
            $imported_media_id = BPMediaImporter::add_media($album_id, $bp_album_item->title, $bp_album_item->description, $bp_album_item->pic_org_path, $bp_album_item->privacy, $bp_album_item->owner_id, 'Imported Media');
            $wpdb->update($table, array('import_status' => $imported_media_id ? $imported_media_id : -1), array('id' => $bp_album_item->id), array('%d'), array('%d'));
            if ($imported_media_id) {
                $comments += (int) BPMediaAlbumimporter::update_recorded_time_and_comments($imported_media_id, $bp_album_item->id, "{$wpdb->base_prefix}bp_album");
                $bp_album_media_id = $wpdb->get_var("SELECT activity.id from {$activity_table} as activity INNER JOIN {$table} as album ON ( activity.item_id = album.id ) WHERE activity.item_id = {$bp_album_item->id} AND activity.component = 'album' AND activity.type='bp_album_picture'");
                // @codingStandardsIgnoreLine
                $wpdb->update($table, array('old_activity_id' => $bp_album_media_id), array('id' => $bp_album_item->id), array('%d'), array('%d'));
                $bp_new_activity_id = $wpdb->get_var("SELECT id from {$activity_table} WHERE item_id = {$imported_media_id} AND component = 'activity' AND type='activity_update' AND secondary_item_id=0");
                // @codingStandardsIgnoreLine
                $wpdb->update($table, array('new_activity_id' => $bp_new_activity_id), array('id' => $bp_album_item->id), array('%d'), array('%d'));
                if ($wpdb->update($activity_meta_table, array('activity_id' => $bp_new_activity_id), array('activity_id' => $bp_album_media_id, 'meta_key' => 'favorite_count'), array('%d'), array('%d'))) {
                    $wpdb->update($table, array('favorites' => 1), array('id' => $bp_album_item->id), array('%d'), array('%d'));
                }
            }
        }
        $finished_users = BPMediaAlbumimporter::get_completed_users();
        echo wp_json_encode(array('page' => $page, 'users' => $finished_users[0]->users, 'comments' => $comments));
        die;
    }