Using WordPress ‘deprecated_constructor_run’ PHP action

The deprecated_constructor_run WordPress PHP action fires when a deprecated constructor is called.

Usage

add_action('deprecated_constructor_run', 'your_custom_function', 10, 3);

function your_custom_function($class_name, $version, $parent_class) {
    // your custom code here
}

Parameters

  • $class_name (string) – The class containing the deprecated constructor.
  • $version (string) – The version of WordPress that deprecated the function.
  • $parent_class (string) – The parent class calling the deprecated constructor.

More information

See WordPress Developer Resources: deprecated_constructor_run

Examples

Log Deprecated Constructors

Log deprecated constructors to a custom log file.

add_action('deprecated_constructor_run', 'log_deprecated_constructors', 10, 3);

function log_deprecated_constructors($class_name, $version, $parent_class) {
    // Log deprecated constructor
    error_log("Deprecated constructor {$class_name} called in version {$version} from parent class {$parent_class}");
}

Send Email Notification on Deprecated Constructor Call

Send an email notification to the admin when a deprecated constructor is called.

add_action('deprecated_constructor_run', 'email_on_deprecated_constructor', 10, 3);

function email_on_deprecated_constructor($class_name, $version, $parent_class) {
    $to = get_bloginfo('admin_email');
    $subject = "Deprecated Constructor Alert";
    $message = "Deprecated constructor {$class_name} called in version {$version} from parent class {$parent_class}";
    wp_mail($to, $subject, $message);
}

Display Deprecated Constructor Warning in Admin Dashboard

Show a warning in the admin dashboard when a deprecated constructor is called.

add_action('deprecated_constructor_run', 'admin_deprecated_constructor_warning', 10, 3);

function admin_deprecated_constructor_warning($class_name, $version, $parent_class) {
    add_action('admin_notices', function() use ($class_name, $version, $parent_class) {
        echo "<div class='notice notice-warning'><p>Deprecated constructor {$class_name} called in version {$version} from parent class {$parent_class}.</p></div>";
    });
}

Add Custom Deprecated Constructor Handling

Add custom handling for specific deprecated constructors.

add_action('deprecated_constructor_run', 'handle_specific_deprecated_constructors', 10, 3);

function handle_specific_deprecated_constructors($class_name, $version, $parent_class) {
    if ($class_name === 'My_Deprecated_Class') {
        // your custom code here
    }
}

Display Deprecated Constructor Warning on Frontend

Show a warning on the frontend when a deprecated constructor is called (for debugging purposes).

add_action('deprecated_constructor_run', 'frontend_deprecated_constructor_warning', 10, 3);

function frontend_deprecated_constructor_warning($class_name, $version, $parent_class) {
    add_action('wp_footer', function() use ($class_name, $version, $parent_class) {
        echo "<div class='deprecated-constructor-warning'>Deprecated constructor {$class_name} called in version {$version} from parent class {$parent_class}.</div>";
    });
}