Я создаю плагин WordPress. Он имеет функциональность для отображения редактора при добавлении продукта через AJAX, но редактор не отображается должным образом.
Пользователь может добавить столько продуктов, сколько захочет, поэтому имейте в виду, что будет более одного wp_editor()
Обратитесь к прилагаемому снимку экрана:
Я использовал следующий код:
PHP
public function add_product() {
// Get product id
$prod_id = filter_input(INPUT_POST, 'pid');
// WordPress WYSIWYG Editor
wp_editor("Test Content", "textarea" . $prod_id, array('textarea_name' => 'text'));
wp_die();
}
JQuery
$('.add-prod').live('click', function () {
var prod_id = $('.prod-id').val();
var data = {
action: 'add_prod',
pid: prod_id
};
$('#update-msg').show();
$.post(ajaxurl, data, function (result) {
$('#the-list').append(result);
$('#update-msg').hide();
});
return false;
});
Я использовал решение из Интернета, но частично его работала не полностью. Использовал следующий код:
PHP
wp_editor($product->prod_desc, $textarea_id, array('textarea_name' => 'text'));
\_WP_Editors::enqueue_scripts();
print_footer_scripts();
\_WP_Editors::editor_js();
JQuery
var eid = '#item-list';
switchEditors.go(eid, 'tmce')
quicktags({id: eid});
//init tinymce
tinyMCEPreInit.mceInit[eid]['elements'] = eid;
tinyMCEPreInit.mceInit[eid]['body_class'] = eid;
tinyMCEPreInit.mceInit[eid]['succesful'] = false;
tinymce.init(tinyMCEPreInit.mceInit[eid]);
И приведенный выше код делает следующее: