В настоящее время я пытаюсь скопировать элемент управления мультимедиа плагина Elementor, чтобы внести в него некоторые изменения в wordpress. Я попытался скопировать элемент управления из \ Elementor \ Control_Media, изменив имя класса и этого метода:
class Control_Custom_Media extends \Elementor\Control_Base_Multiple {
...
public function get_type() {
return 'custommedia';
}
}
Затем зарегистрировали это
function register_custom_controls($controls) {
include 'control-custom-media.php';
Plugin::instance()->controls_manager->register_control( 'custommedia', new Control_Custom_Media() );
}
add_action( 'elementor/controls/controls_registered', 'register_custom_controls');
Наконец, я создал виджет с этим элементом управления
protected function _register_controls() {
...
$this->add_control(
'image',
[
'label' => __( 'Test', 'custom-plugin' ),
'type' => 'custommedia',
'default' => [
'url' => \Elementor\Utils::get_placeholder_image_src(),
],
]
);
...
}
Но я не могу заставить его работать. Поле появляется на боковой панели элемента или на боковой панели, но как только я щелкаю, чтобы открыть медиа-библиотеку, оно не работает. Проверили события, и тот, который запускает событие openFrame, по какой-то причине не привязан?
Чтобы проверить, работает ли управление мультимедиа, я добавил его после, и он работает
Что я мог делать не так?
заранее спасибо