Make WordPress Core

Opened 5 years ago

Closed 5 years ago

#48593 closed defect (bug) (invalid)

Fatal error: Class ‘WP_Privacy_Data_Export_Requests_List_Table’ not found in /wp-admin/includes/deprecated.php on line 1526 On WordPress 5.3

Reported by: mhshohel's profile mhshohel Owned by:
Milestone: Priority: normal
Severity: normal Version: 5.3
Component: Privacy Keywords:
Focuses: administration Cc:

Description

Class

<?php
WP_Privacy_Data_Export_Requests_Table

AND

<?php
WP_Privacy_Data_Removal_Requests_List_Table

Called for extend but it does not exist on the deprecated. Solution Below on the /wp-admin/includes/deprecated.php. Replace

<?php
class WP_Privacy_Data_Export_Requests_Table extends WP_Privacy_Data_Export_Requests_List_Table {
                function __construct( $args ) {
                        _deprecated_function( __CLASS__, '5.3.0', 'WP_Privacy_Data_Export_Requests_List_Table' );

                        if ( ! isset( $args['screen'] ) || $args['screen'] === 'export_personal_data' ) {
                                $args['screen'] = 'export-personal-data';
                        }

                        parent::__construct( $args );   
                }
        }

With

<?php
if (class_exists('WP_Privacy_Data_Export_Requests_Table')) {

        class WP_Privacy_Data_Export_Requests_Table extends WP_Privacy_Data_Export_Requests_List_Table {
                function __construct( $args ) {
                        _deprecated_function( __CLASS__, '5.3.0', 'WP_Privacy_Data_Export_Requests_List_Table' );

                        if ( ! isset( $args['screen'] ) || $args['screen'] === 'export_personal_data' ) {
                                $args['screen'] = 'export-personal-data';
                        }

                        parent::__construct( $args );   
                }
        }
}

AND Replace

<?php
class WP_Privacy_Data_Removal_Requests_Table extends WP_Privacy_Data_Removal_Requests_List_Table {
                function __construct( $args ) {
                        _deprecated_function( __CLASS__, '5.3.0', 'WP_Privacy_Data_Removal_Requests_List_Table' );

                        if ( ! isset( $args['screen'] ) || $args['screen'] === 'remove_personal_data' ) {
                                $args['screen'] = 'erase-personal-data';
                        }

                        parent::__construct( $args );
                }
        }

With

<?php
if (class_exists('WP_Privacy_Data_Removal_Requests_List_Table')) {

        class WP_Privacy_Data_Removal_Requests_Table extends WP_Privacy_Data_Removal_Requests_List_Table {
                function __construct( $args ) {
                        _deprecated_function( __CLASS__, '5.3.0', 'WP_Privacy_Data_Removal_Requests_List_Table' );

                        if ( ! isset( $args['screen'] ) || $args['screen'] === 'remove_personal_data' ) {
                                $args['screen'] = 'erase-personal-data';
                        }

                        parent::__construct( $args );
                }
        }
}

Or include the both class files to

wp-admin/includes/deprecated.php

Attachments (2)

debug.log (1.6 KB) - added by mhshohel 5 years ago.
Debug Log
mhshohel-fatalerrorfix.diff (2.2 KB) - added by mhshohel 5 years ago.
path to fix this issue

Download all attachments as: .zip

Change History (10)

@mhshohel
5 years ago

Debug Log

#1 @dd32
5 years ago

  • Keywords reporter-feedback added
  • Severity changed from critical to normal

Hi @mhshohel,

This sounds like a failed update - or rather a partial update. Alternatively it could be due to an incompatible plugin.

The WP_Privacy_Data_Export_Requests_List_Table class does exist in wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php and is included in wp-admin/includes/admin.php prior to deprecated.php being included.

Can you confirm that you're still seeing this as a problem after verifying that WordPress is updated (You can use the re-install option in Dashboard -> Updates) and you've disabled all plugins

Last edited 5 years ago by dd32 (previous) (diff)

@mhshohel
5 years ago

path to fix this issue

#2 @mhshohel
5 years ago

Hi

I attached a patch

mhshohel-fatalerrorfix.diff

and solved by this way, However, it comes after the update WordPress core.

Note: it's not a failed update, the core has been updated successfully

Best Regards

Last edited 5 years ago by mhshohel (previous) (diff)

#3 @SergeyBiryukov
5 years ago

  • Component changed from General to Privacy

Hi there, welcome to WordPress Trac! Thanks for the report.

Just wanted to confirm what @dd32 said, that looks like an incomplete update or an incompatible plugin. I could not reproduce it on neither on a clean install nor on an update from 5.2.4.

As noted in comment:1, the WP_Privacy_Data_Export_Requests_List_Table class is defined and included before the code in wp-admin/includes/deprecated.php runs.

#4 @scmsteve
5 years ago

Just making a note that we are seeing this on our upgrade attempt as well:

https://wordpress.org/support/topic/5-3-upgrade-error/#post-12152250

Core seems updated, the last message I recall seeing on the screen was that it was doing the database upgrade.

Last edited 5 years ago by scmsteve (previous) (diff)

#5 @scmsteve
5 years ago

Doing a grep through plugins/themes, I found that a plugin "woocommerce-help-scout" had an include like this:

include_once 'includes/deprecated.php';

It isn't prefixed wtih a path, and seems to somehow being triggering the wp-admin/includes/deprecated.php incorrectly.

Disabling that plugin allows me to re-install 5.3 without retriggering the error.

#6 @garrett-eclipse
5 years ago

  • Keywords close added

Great work troubleshooting @scmsteve I gave a potential workaround on your support ticket and suggest you open an issue with WooCommerce Support as woocommerce-help-scout is a paid plugin.

@mhshohel before I close this as a plugin conflict can you confirm @scmsteve findings in your case? Are you using the WooCommerce Help Scout plugin? Or do you have any plugins/themes in place which make a request to include deprecated.php, or reference either WP_Privacy_Data_Export_Requests_List_Table or WP_Privacy_Data_Export_Requests_Table.

As @dd32 and @SergeyBiryukov noted the issue seems to lie in plugins and not in WP Core itself.

#7 @scmsteve
5 years ago

I reported the problem and can confirm that at least the WooCommerce Help Scout plugin is fixed:

2019-11-20 - version 2.2
Fixed issue 'WP_Privacy_Data_Export_Requests_List_Table' with wordpress 5.3.

#8 @garrett-eclipse
5 years ago

  • Keywords reporter-feedback close removed
  • Milestone Awaiting Review deleted
  • Resolution set to invalid
  • Status changed from new to closed

Thanks @scmsteve that's great news. I'm going to close this out as invalid since it was caused by a plugin.

@mhshohel feel free to re-open if your issue persists.

Note: See TracTickets for help on using tickets.