Создание страниц из данных формы ниндзя

Я создал страницу WordPress с формой Ninja, которая собирает разные данные о продукте, включая некоторые загруженные изображения. Страница с формой доступна из главного меню, щелкнув элемент "Вход", поэтому пользователю не нужно обращаться к серверу, чтобы загружать данные своего продукта.

Теперь я хочу поместить эти данные в пользовательский тип сообщения, называемый "Листинг". В конце концов, тысячи этих наборов данных и тысячи страниц "Список", когда люди придут на сайт, нажмите "Вход" в главном меню, чтобы перейти на страницу с формой ниндзя и заполнить ее.

Может ли кто-нибудь рассказать мне, как они собираются сейчас создавать эти страницы листинга из данных, которые собрала форма?

Я запускаю опцию Front-End Post Ninja, которая предположительно создаст страницу из данных формы. В этом плагине есть некоторые настройки создания сообщений, в которых вы можете выбрать тип сообщения для создания, но это не работает для меня. Я бы ожидал, что представленные данные формы появятся под панелью инструментов | Списки, но там ничего нет после отправки формы.

Кто-нибудь получил это, чтобы работать?

Спасибо за вашу помощь.

Ответ 1

Я думаю, вы можете использовать только Ninja Forms без расширений и напрямую подключаться к "ninja_forms_after_submission", который запускается после отправки и позволяет вам использовать предоставленные данные и выполнять действия.

Это стартовая кодовая база для достижения вашего результата, но ее необходимо настроить по вашим потребностям и структуре вашей формы.

add_action( 'ninja_forms_after_submission', 'create_page_from_ninjaform' );
function create_page_from_ninjaform( $form_data ){

    // your fields data
    $form_fields = $form_data[ 'fields' ];

    // !!! this is an example, it depends form fields in your form
    $title = $form_fields[ 1 ][ 'value' ];
    $content = $form_fields[ 2 ][ 'value' ];
    $sample_meta_field = $form_fields[ 3 ][ 'value' ];

    $new_post = array(
        'post_title' => $title,
        'post_content' => $content,
        'post_status' => 'publish',
        'post_type' => 'listing', // be sure this is the post type name
    );

    $new_post_id = wp_insert_post( $new_post );

    update_post_meta( $new_post_id, 'your_meta_key', $sample_meta_field );

}

Этот код следует скопировать в файл functions.php

Не проверено, конечно.

Удачи;)

Ответ 2

Расширение Post-End Posting для форм ниндзя на самом деле не предназначено для отображения данных представления формы на переднем конце.

От: https://ninjaforms.com/extensions/front-end-posting/

"Расширение Posting Ends Forms Forms позволяет вам использовать редактор сообщений WordPress на любой общедоступной странице, которую вы выберете.

Если вы хотите показать данные представления Ninja Forms на переднем конце, вам нужно будет извлечь их из базы данных с кодом в functions.php или путем написания плагина (рекомендуется). Затем вы можете разобрать и обработать их и создать короткий код, который позволит вам легко вставлять ваши форматированные данные представления в сообщения Wordpress или страницы.

Здесь ссылка на запрос функции, прося о том же. Автор этого запроса разместил ссылку на плагин (нажмите "Скачать как плагин" ), которые они написали, что может делать то, что вам нужно, или дать вам дополнительные сведения о том, как вы могли бы реализовать это.

https://github.com/wpninjas/ninja-forms/issues/892

Ответ 3

Если вы не против платить немного денег за плагин, я бы рекомендовал использовать гравитационные формы, а не ниндзя для более продвинутых вещей, подобных этому.

Я вручную создаю персонализированный тип сообщения "oproep" и использовал плагин gravityforms для создания пользовательского сообщения из типа oproep, когда пользователь отправляет форму.

Поскольку вы используете собственные страницы архива типа post, www.mysite.com/oproep будет автоматически создан, поэтому у вас уже есть список "Списки". Для вас по умолчанию создаются страницы www.mysite.com/oproep/title, вы можете переопределить эти шаблоны, если хотите, в зависимости от вашей темы.

Единственное, что вам нужно сделать, это добавить несколько php-строк в ваш файл functions.php(или написать собственный плагин), который добавит пользовательский тип сообщения. Все остальное работает автоматически.

Я дошел до написания кода, чтобы пользователи могли редактировать свои материалы, читать пользовательские теги таксономии в выпадающих меню и т.д. У вас есть много и больше возможностей с использованием гравитационных форм.