web-dev-qa-db-fra.com

Un meilleur moyen de remplacer les fichiers JS du plugin?

Je suis en train de modifier certaines fonctionnalités d'un thème que j'utilise, qui ont déjà configuré un fichier .js dans un plugin pour gérer le processus de paiement Paypal. Je devais modifier le code afin de renommer quelques éléments et de copier l’ancien fichier js dans un nouveau fichier et d’apporter les modifications.

Cela fonctionne et tout va bien, mais je me demande s’il existe un meilleur moyen de le faire dans Wordpress? Cela ne me semble pas juste de modifier autant pour que je puisse modifier quelques lignes de code à l'intérieur.

Merci!

2
user102853

Prolonger le commentaire ci-dessus:

Changer directement les fichiers du plugin ou du thème n’est pas une bonne pratique car une fois le plugin/thème mis à jour, vous perdrez les modifications. Utilisez plutôt le thème enfant dans le cas de thèmes et raccordez-vous aux actions requises dans le cas de plugins.

Dans votre cas, puisque vous ne modifiez que le script dans le plug-in et qu'ils ont peut-être été mis en file d'attente (ils devraient l'être) avec wp_enqueue_script relié à wp_enqueue_scripts. Vous pouvez supprimer ce script en utilisant wp_dequeue_script. Tout ce que vous avez à faire est de trouver le descripteur de script à partir du plug-in d'origine. Ensuite, vous devez mettre en file d'attente le script modifié.

2
bravokeyl

Même problème ici, mais "wp_dequeue_script" n'était pas suffisant. Je voulais remplacer les "waypoints" chargés par le plugin WPBakery. En ajoutant "wp_deregister_script", le code fonctionne.

define( 'MY_CHILD_URI', get_stylesheet_directory_uri().'/' );

add_action('wp_enqueue_scripts', 'mytheme_scripts');

function mytheme_scripts() {
  wp_dequeue_script( 'waypoints' );
  wp_deregister_script( 'waypoints' );
  wp_enqueue_script( 'waypoints',  MY_CHILD_URI . 'assets/js/jquery.waypoints.min.js', array('jquery'), '', true );
} 
1
zod