Purpose
Add custom JavaScript to a DataTableObject programmatically. This filter allows you to dynamically include additional JavaScript files for specific DataTables based on their settings or context.
Usage
add_filter( "wr_DataTable_modify_DataTableObject_filter", array( $this, "add_js_to_DataTableObject" ), 10, 2 );
Parameters
$data_table_object (DataTableObject)
: The DataTable object being processed, used for managing scripts and configurations.$datatable (DataTable)
: The DataTable instance, containing settings and contextual information.
Use Case
This functionality is useful when:
- You need to attach custom JavaScript files to enhance the functionality of specific DataTables.
- Different DataTables require tailored JavaScript logic for handling unique behaviors or interactions.
Implementation Example
The following example adds a custom JavaScript file (equipment-page.js
) to a DataTable identified by equipment_datatable
in its settings:
add_filter( "wr_DataTable_modify_DataTableObject_filter", array( $this, "add_js_to_DataTableObject" ), 10, 2 );
public function add_js_to_DataTableObject( DataTableObject $data_table_object, DataTable $datatable ): DataTableObject {
$settings = $datatable->get_settings();
if ( str_contains( $settings['options'], "equipment_datatable" ) ) {
$path = plugin_dir_path( __FILE__ ) . 'Resources/equipment-page.js';
$data_table_object->add_script_object( ScriptObject::create_by_file( $path ) );
}
return $data_table_object;
}