Создал новую вкладку в личном кабинете. Добавил Select с выбором типа публикации. Скриптом получаю значение выбранного селекта и согласно селекту подгружаю аяксом необходимую форму публикации. Всё работает, кроме загрузки изображений в подгруженной форме публикации. Код прилагаю ниже, может есть какие идеи, как решить проблему с загрузкой изображений?
//Добавляем вкладку в ЛК
add_action('init','register_my_tab');
function register_my_tab(){
$tab_data = array(
'id'=>'new-tab',
'name'=>'Новая вкладка',
'supports'=>array(),//поддержка кеширования и ajax-загрузки
'public'=>0,//делаем вкладку НЕпубличной
'icon'=>'fa-plus',//указываем иконку
'output'=>'menu',//указываем область вывода
'content'=>array(
array( //массив данных первой дочерней вкладки
'callback' => array(
'name'=>'select_form',//функция формирующая контент
)
)
)
);
rcl_tab($tab_data);
}
// Функция вывода контента во вкладке
function select_form () {
$vyvod = 'Выберите категорию:
// выбор формы публикации через select
<select class="add_form_lk">
<option value="1">Категория 1</option>
<option value="2">Категория 2</option>
</select>
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
<script>
// Получаем значение выбранного selecta и подгружаем нужную форму публикации
jQuery( document ).ready(function(jQuery) {
jQuery(".add_form_lk").on("change",function() {
var val = jQuery(this).val();
if (val == 1 ) {
jQuery.post(
"/wp-admin/admin-ajax.php",
{
action: "form_1",
},
onAjaxSuccess
);
function onAjaxSuccess(data)
{
// Выводим форму публикации form_1
jQuery( "div.demo-container" ).html( data );
};
} else {
jQuery.post(
"/wp-admin/admin-ajax.php",
{
action: "form_2",
},
onAjaxSuccess
);
function onAjaxSuccess2(data)
{
// Выводим форму публикации form_2
jQuery( "div.demo-container" ).html( data );
};
}
});
});</script>
';
return $vyvod;
};
//Форма публикации form_1
add_action( 'wp_ajax_form_1', 'form_1' );
add_action( 'wp_ajax_nopriv_form_1', 'form_1' );
function form_1() {
echo do_shortcode('[public-form post_type="type_1"]');
}
//Форма публикации form_2
add_action( 'wp_ajax_form_2', 'form_2' );
add_action( 'wp_ajax_nopriv_form_2', 'form_2' );
function form_2() {
echo do_shortcode('[public-form post_type="type_2"]');
}
Вы сравните какие скрипты грузятся в вкладке публикации которая загружается не через ajax с той формой публикации которая грузится ajax-ом.
Я подозреваю у вас при загрузке ajax-ом не грузятся нужные скрипты для работы медиазагрузчика. А какие это скрипты - узнаете сравнив.
p.s. - код сюда надо вставлять через кнопку "Многострочный код" (а не кнопкой "код" - это для одной строки кода) и предварительно код отформатируйте - эту лапшу читать - у меня кровь из глаз пошла 😡