Crear una extensión personalizada para WOLF (guía para desarrolladores)
WOLF permite crear extensiones personalizadas, que deben colocarse en la carpeta: wp-content/wpbe_ext
Estas son algunas extensiones nativas existentes, a modo de ejemplo:
La funcionalidad de una extensión puede presentarse en pestañas (pestañas superiores y pestañas básicas) o sin ninguna pestaña, como en la 'calculator', por ejemplo.
Veamos la extensión más sencilla, Info:
- Su carpeta se llama 'info'
- Dentro de la carpeta 'info' deben estar: info.php, views/panel.php, js/info.js, css/info.css y, si hace falta, también la carpeta img
- info.php contiene una clase PHP llamada WPBE_INFO que extiende la clase WPBE_EXT
- en la clase WPBE_INFO debe definirse la variable protegida $slug con el valor 'info'
- en el constructor de la clase WPBE_INFO debe definirse el siguiente código para crear las pestañas:
$this->add_tab($this->slug, 'panel', __('Help', 'bulk-editor')); add_action('wpbe_ext_panel_' . $this->slug, array($this, 'wpbe_ext_panel'), 1);Para crear pestañas en el deslizador superior (donde están filtro, edición masiva y exportación) el código debe ser:
$this->add_tab($this->slug, 'top_panel', __('Help', 'bulk-editor')); add_action('wpbe_ext_top_panel_' . $this->slug, array($this, 'wpbe_ext_panel'), 1);Observe el código con atención para ver la diferencia: panel -> top_panel; wpbe_ext_panel_ -> wpbe_ext_top_panel_
- Si necesitamos usar algún js y css en nuestra extensión, escribimos la función wpbe_ext_scripts:
public function wpbe_ext_scripts() { wp_enqueue_script('wpbe_ext_' . $this->slug, $this->get_ext_link() . 'assets/js/' . $this->slug . '.js'); wp_enqueue_style('wpbe_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', 'bulk-editor') ?>"; </script> <?php }Este código incluirá los estilos de nuestra extensión y las futuras acciones js
- La función wpbe_ext_panel mostrará los formularios que necesitemos ver en nuestra aplicación. Por supuesto, mostrará el código HTML que escriba en el archivo views/panel.php, por ejemplo, cualquier ventana emergente
- Con esto ya tenemos la aplicación más sencilla que se puede crear. Para escribir su propia lógica, consulte el código de las extensiones que puede descargar en esta página como ejemplos o las extensiones nativas de WPBE en la carpeta wp-content\plugins\bulk-editor\ext
- ATENCIÓN: en las extensiones externas debe definirse la variable protegida $is con el valor 'external'

Algunas acciones:
- wpbe_adv_panel_buttons_end - añade código html al final del panel de herramientas en las pestañas del Editor de entradas (Posts Editor); vea el ejemplo en la extensión 'bulk'
- wpbe_adv_panel_buttons - añade código html al principio del panel de herramientas en las pestañas del Editor de entradas; vea el ejemplo en la extensión 'bulk'
- wpbe_page_end - con este hook puede renderizar los elementos html adicionales que necesite para su aplicación; vea como ejemplo la extensión calculator
- wpbe_before_update_page_field - hook que puede ejecutarse antes de actualizar un campo de las entradas: models/posts.php
- wpbe_after_update_page_field - hook que puede ejecutarse después de actualizar un campo de las entradas: models/posts.php
add_action('wpbe_after_update_page_field', function($post_id, $post, $field_key, $value, $field_type) { //do smth here }); - wpbe_bulk_started - hook previo al inicio de la edición masiva: \ext\bulk\bulk.php
- wpbe_bulk_going - hook durante la edición masiva: \ext\bulk\bulk.php
- wpbe_bulk_finished - hook tras finalizar la edición masiva: \ext\bulk\bulk.php
Algunas variables:
- wpbe_checked_posts - (js) ID de las entradas seleccionadas en el Editor de entradas
- wpbe_bind_editing - (js) indica si la edición vinculada está activada
- wpbe_show_variations - (js) indica si se muestran las variaciones
- wpbe_adv_panel_full_width - (js) indica si el ancho completo está activado
- global $WPBE - (php) variable global principal del plugin que puede usar



