Créer une extension personnalisée avec l'API développeur de BEAR
La fonctionnalité d'une extension peut être présentée dans des onglets : onglets du haut et onglets de base, ou sans aucun onglet, comme pour 'calculator' par exemple. Regardons l'extension la plus simple, Info :
- Son dossier s'appelle 'info'
- À l'intérieur du dossier 'info' doivent se trouver : info.php, views/panel.php, js/info.js, css/info.css et, si nécessaire, aussi le dossier img
- info.php contient une classe PHP nommée WOOBE_INFO, qui étend la classe WOOBE_EXT
- dans la classe WOOBE_INFO, la variable protégée $slug doit être définie avec la valeur 'info'
- dans le constructeur de la classe WOOBE_INFO, le code suivant doit être présent pour créer des onglets :
Pour créer des onglets dans le slider du haut (où se trouvent filter, bulk, export), le code doit être :$this->add_tab($this->slug, 'panel', __('Help', 'woocommerce-bulk-editor')); add_action('woobe_ext_panel_' . $this->slug, array($this, 'woobe_ext_panel'), 1);
Regardez de plus près le code pour voir la différence : panel -> top_panel; woobe_ext_panel_ -> woobe_ext_top_panel_$this->add_tab($this->slug, 'top_panel', __('Help', 'woocommerce-bulk-editor')); add_action('woobe_ext_top_panel_' . $this->slug, array($this, 'woobe_ext_panel'), 1); - Si nous devons utiliser du js et du css dans notre extension, écrivons la fonction woobe_ext_scripts :
Ce code inclura les styles de notre extension et les futures actions jspublic function woobe_ext_scripts() { wp_enqueue_script('woobe_ext_' . $this->slug, $this->get_ext_link() . 'assets/js/' . $this->slug . '.js'); wp_enqueue_style('woobe_ext_' . $this->slug, $this->get_ext_link() . 'assets/css/' . $this->slug . '.css'); ?> <script> lang.<?php echo $this->slug ?> = {}; lang.<?php echo $this->slug ?>.example= "<?php _e('Text example', 'woocommerce-bulk-editor') ?>"; </script> <?php } - La fonction woobe_ext_panel affichera tous les formulaires que nous voulons voir dans notre application. Elle affichera bien sûr le code HTML que vous écrirez dans le fichier views/panel.php, par exemple des popups
- Nous avons maintenant l'application la plus simple qu'il soit possible de créer. Pour écrire votre propre logique, vous devez consulter le code des extensions que vous pouvez télécharger sur cette page comme exemples, ou consulter les extensions natives de WOOBE dans le dossier wp-content\plugins\woocommerce-bulk-editor\ext
- ATTENTION : pour les extensions externes, la variable protégée $is doit être définie avec la valeur 'external'

Quelques actions :
- woobe_adv_panel_buttons_end - ajoutera du HTML à la fin du panneau d'outils dans les onglets du Editeur de produits (Products Editor), voir l'exemple dans l'extension 'bulk'
- woobe_adv_panel_buttons - ajoutera du HTML au début du panneau d'outils dans les onglets du Editeur de produits, voir l'exemple dans l'extension 'bulk'
- woobe_page_end - avec ce hook, vous pouvez afficher tout élément HTML supplémentaire dont votre application a besoin, voir l'exemple de l'extension calculator
- woobe_before_update_page_field - hook pouvant être exécuté avant la mise à jour d'un champ produit : models/products.php
- woobe_after_update_page_field - hook pouvant être exécuté après la mise à jour d'un champ produit : models/products.php
add_action('woobe_after_update_page_field', function($product_id, $product, $field_key, $value, $field_type) { //do smth here }); - woobe_bulk_started - hook avant le début de l'édition en masse : \ext\bulk\bulk.php
- woobe_bulk_going - hook pendant que l'édition en masse se déroule : \ext\bulk\bulk.php
- woobe_bulk_finished - hook une fois l'édition en masse terminée : \ext\bulk\bulk.php
Quelques variables :
- woobe_checked_products - (js) IDs des produits sélectionnés dans le Editeur de produits
- woobe_bind_editing - (js) si la modification liée est activée
- woobe_show_variations - (js) si les variations sont affichées
- woobe_adv_panel_full_width - (js) si la pleine largeur est activée
- global $WOOBE - (php) variable principale globale de l'extension que vous pouvez utiliser

