What is the best practice for customizing a plugin’s JavaScript/jQuery?

Most well written plugins support a safe means for a developer to customize/theme the plugin by copying PHP files to the theme directory and modifying the copies rather than the original plugin file. But, unless I’m overlooking something, I’m not aware of any that support this with JavaScript/jQuery files.

What is the best practice or approach for customizing the plugin’s JavaScrpt/jQuery files in an upgrade safe manner?

Related posts

Leave a Reply

1 comment

  1. If a Plugin is coded properly, it will:

    1. Use core-bundled jQuery, and any other core-bundled script, rather than bundling/using custom versions of such scripts
    2. enqueue its scripts, via wp_enqueue_script(), hooked into an appropriate hook, via an explicit function

    So, for such a Plugin:

    1. You won’t need to worry about customizing/overriding core-bundled scripts, since the Theme will be using the core-bundled versions as well
    2. You can override custom scripts bundled with the Plugin by dequeueing the Plugin’s scripts, and enqueueing your own custom versions

    To override a Plugin’s scripts, you have a few options:

    1. Call remove_action() to remove the entire callback that contains the wp_enqueue_script() calls
    2. Call wp_dequeue_script() to prevent the script from being enqueued, followed by a wp_enqueue_script() call to enqueue your own script.
    3. Call wp_deregister_script(), followed by wp_register_script() (with the same script $handle to allow your own custom version to be registered, and enqueued in place of the Plugin’s version