J'utilise le Variation Swatches for WooCommerce plugin pour afficher des nuances d'attributs de produit, mais chaque fois que j'essaie d'ajouter des termes à un attribut de produit dans la page d'ajout de produit, l'erreur javascript suivante est générée:
load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,plupload&ver=4.8.1:59 Uncaught TypeError: Cannot read property 'replace' of undefined
at Function.m.template (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,plupload&ver=4.8.1:59)
at load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,plupload&ver=4.8.1:63
at HTMLButtonElement.<anonymous> (admin.js?ver=20170113:71)
at HTMLBodyElement.dispatch (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,plupload&ver=4.8.1:3)
at HTMLBodyElement.r.handle (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,plupload&ver=4.8.1:3)
Et la boîte de dialogue d'ajout de terme ne s'affiche pas, mais la même fonctionnalité fonctionne dans la page d'édition du produit.
quel peut être le problème et comment le résoudre?
Le problème était un bogue mineur dans Variation Swatches for WooCommerce plugin, le terme d’ajout modal html n’était pas inclus dans la page d’ajout de produit à la suite d’une instruction conditionnelle erronée dans le fichier class-admin.php
à la ligne 266:
if ( $pagenow != 'post.php' || ( isset( $post ) && get_post_type( $post->ID ) != 'product' ) )
Cette condition ne vérifie pas la page d'ajout de produit. Pour y remédier, nous devons ajouter la page post-new.php
en tant que page acceptée à l'aide de cette déclaration:
if ( ($pagenow != 'post.php' && $pagenow != 'post-new.php') || ( isset( $post ) && get_post_type( $post->ID ) != 'product' ) )