WOLF - WordPress Posts Bulk Editor and Manager Professional

Creating a custom extensions

WOLF allows to create custom extensions which should be placed in folder: wp-content/wpbe_ext

Here are some existed native extensions for example:


Extension functionality can be presented in tabs: top tabs and basic tabs, or without any tabs, as ‘calculator‘ for example.

Let’s consider the most simple extension as Info:

  • Its folder has name ‘info
  • Inside folder ‘info‘ should be: info.php, views/panel.php, js/info.js, css/info.css and can be also folder img if its necessary
  • info.php has PHP class inside as WPBE_INFO which extends class WPBE_EXT
  • in class WPBE_INFO should be defined protected variable $slug with value ‘info
  • in the constructor of class WPBE_INFO  should be defined next code to create tabs:
    $this->add_tab($this->slug, 'panel', __('Help', 'bulk-editor'));
    add_action('wpbe_ext_panel_' . $this->slug, array($this, 'wpbe_ext_panel'), 1);

    To create tabs in the top slider (where is filter,bulk,export) the code should be:

    $this->add_tab($this->slug, 'top_panel', __('Help', 'bulk-editor'));
    add_action('wpbe_ext_top_panel_' . $this->slug, array($this, 'wpbe_ext_panel'), 1);

    Look closer to the code to see the difference: panel -> top_panelwpbe_ext_panel_ -> wpbe_ext_top_panel_

  • If we need to use any js and css in the our extension write function 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
        }

    This code will include styles for our extension and future js actions

  • Function wpbe_ext_panel will show any forms we need to see in our application. Of course it will show HTML code which you will write in file views/panel.php, for example any popups there
  • So now we have the most simple application which is possible to create. To write your logic you need to see code of extensions which you can download on this page as examples or see native extensions of WPBE in folder wp-content\plugins\bulk-editor\ext
  • ATTENTION: for external extensions should be defined protected variable $is with value ‘external

Some actions:

  • wpbe_adv_panel_buttons_end – will add any html on the end of tools panel in the Posts Editor tabs, see example in extension ‘bulk
  • wpbe_adv_panel_buttons – will add any html on the beginning of tools panel in the Posts Editor tabs, see example in extension ‘bulk
  • wpbe_page_end – with this hook you can render any additional html elements you need for your application, see as example extension calculator
  • wpbe_before_update_page_field – hook which can be executed before posts field update: models/posts.php
  • wpbe_after_update_page_field – hook which can be executed after posts field update: 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 before bulk editing started: \ext\bulk\bulk.php
  • wpbe_bulk_going –  hook while bulk editing going: \ext\bulk\bulk.php
  • wpbe_bulk_finished – hook after bulk editing done: \ext\bulk\bulk.php

Some variables:

  • wpbe_checked_posts – (js) ids of the selected posts in the Posts Editor
  • wpbe_bind_editing – (js) is bind editing enabled
  • wpbe_show_variations – (js) is variations shown
  • wpbe_adv_panel_full_width – (js) is full width activated
  • global $WPBE – (php) global plugin main variable you can use