Пришлось мне тут писать блок для
Visual Composer как-то так:
add_action('init', function() {
class vcCatalogBlock extends WPBakeryShortCode
{
function __construct()
{
add_action('vc_before_init', [$this, 'vc_mapping']);
add_shortcode('vc_catalog_block', [$this, 'vc_catalog_block']);
}
public function vc_mapping()
{
vc_map(
array(
'name' => 'VC Catalog Block',
'base' => 'vc_catalog_block',
'description' => 'Каталог компаний',
'category' => 'Блоки',
'icon' => '',
'params' => array(
array(
'type' => 'dropdown',
'heading' => "Выберите конференцию",
'param_name' => 'conference_id',
'value' => $this->get_conferences(),
'admin_label' => true,
),
)
)
);
}
public function get_conferences()
{
$result = wp_remote_post(CRM_SITE_URL . '/api/conference/list');
}
}
new vcCatalogBlock();
});
он получает данные по API с соседнего сайта - и что вы думаете?
эта зараза на всех страницах WordPress срабатывает а не только когда используется на сайте или редактируется в админке!
получается экшен vc_before_init срабатывает всегда и на всех страницах - но зачем?
может я что-то не учел? как-то не правильно сделал?