Ninja 폼 데이터로 페이지 작성
Ninja 폼이 있는 WordPress 페이지를 만들었습니다.WordPress 페이지에는 업로드된 이미지를 포함한 제품에 관한 각종 데이터가 수집됩니다.폼이 있는 페이지는 메인 메뉴에서 "Input" 항목을 클릭하면 액세스할 수 있으므로 사용자는 제품 데이터를 업로드하기 위해 백엔드에 액세스할 필요가 없습니다.
이 데이터를 「Listing」이라고 하는 커스텀 투고 타입에 넣습니다.이러한 데이터 세트가 수천 개에 달해, 「목록」페이지가 수천 개에 달하게 됩니다.이 사이트에는, 메인 메뉴로 「입력」을 클릭해 Ninja 폼의 페이지에 액세스 해 기입해 주세요.
폼이 수집한 데이터를 바탕으로 리스트 페이지를 작성하는 방법을 가르쳐 주실 수 있습니까?
저는 Ninja의 Front-End Post 옵션을 실행하고 있습니다.이 옵션은 폼 데이터로부터 페이지를 작성하는 것입니다.이 플러그인은 작성할 투고 유형을 선택할 수 있는 투고 작성 설정이 몇 가지 있지만, 저는 이 플러그인이 작동하지 않습니다.dashboard | Listings에 제출된 폼 데이터가 표시될 것으로 예상되지만 폼을 보낸 후 아무것도 표시되지 않습니다.
이거 작동시킨 사람 있어?
도와주셔서 고마워요.
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 );
}
이 코드는 함수로 복사해야 합니다.php 파일
물론 테스트 안 했어.
행운을 빈다;)
Ninja Forms Front-end Posting 확장 기능은 폼 제출 데이터를 프런트 엔드에 표시하기 위한 것이 아닙니다.
송신원: https://ninjaforms.com/extensions/front-end-posting/
"Ninja Forms Front-end Posting 확장 기능은 사용자가 선택한 모든 공개 페이지에서 WordPress 포스트 편집기의 기능을 제공합니다."
프런트 엔드에 Ninja Forms의 송신 데이터를 표시하려면 , 코드 인 함수로 데이타베이스로부터 취득할 필요가 있습니다.php 또는 플러그인(권장)을 씁니다.그런 다음 그것들을 해석하고 조작하여 Wordpress 투고 또는 페이지에 포맷된 제출 데이터를 쉽게 삽입할 수 있는 쇼트 코드를 만들 수 있습니다.
다음은 동일한 기능을 요청하는 링크입니다.이 요청 작성자는 사용자가 원하는 작업을 수행하거나 구현 방법에 대한 자세한 정보를 제공하는 플러그인에 대한 링크를 게시했습니다([Download as Plugin(플러그인으로 다운로드)
https://github.com/wpninjas/ninja-forms/issues/892
플러그인 구입에 약간의 돈을 지불해도 괜찮으시다면 닌자 폼보다 중력 폼을 사용하는 것이 좋습니다.
수동으로 커스텀 투고 타입 「oproep」을 작성하고, 사용자가 폼을 송신할 때 Gravityforms 플러그인을 사용해 타입 oproep에서 커스텀 투고를 작성했습니다.
커스텀 포스트 타입의 아카이브 페이지를 사용하고 있기 때문에, www.mysite.com/oproep 가 자동적으로 작성되어 「목록」의 리스트가 이미 작성되고 있습니다.singe 페이지 www.mysite.com/oproep/title도 기본적으로 작성됩니다.주제에 따라서는 이러한 템플릿을 덮어쓸 수도 있습니다.
필요한 것은 커스텀 투고 타입을 추가하는 functions.php에 몇 줄의 php 행을 추가하는 것 뿐입니다.나머지는 모두 자동으로 동작합니다.
유저가 투고를 편집하거나 드롭 다운의 커스텀 분류 태그를 읽어낼 수 있도록 코드를 작성하기까지 했습니다.중력의 형태를 이용하면 많은 선택지가 있습니다.
Francesco Carlucci의 답변은 맞지만, 추가 코멘트를 덧붙입니다.폼 필드 ID로 포스트의 어느 필드가 어디로 가야 하는지 지정하는 경우 Ninja Forms는 ID를 숫자로 전달합니다(예를 들어, 제 포스트 타이틀에는 필드 136이 필요했습니다).당연한 일이었을지 모르지만, 나는 그것을 알아낼 때까지 잠시 동안 머리를 굴렸다.
function create_post($form_data) {
$form_fields = $form_data[ 'fields' ];
$post_fields = array(
'post_content' => '',
'post_content_filtered' => '',
'post_title' => '',
'post_excerpt' => '',
'post_status' => 'pending',
'post_type' => 'post',
);
foreach ($form_fields as $field) {
$field_id = $field[ 'id' ];
$field_key = $field[ 'key' ];
$field_value = $field[ 'value' ];
if ($field_id == 136) {
$post_fields['post_title'] = $field_value;
}
}
wp_insert_post($post_fields, true);
}
언급URL : https://stackoverflow.com/questions/34367685/creating-pages-from-ninja-form-data
'programing' 카테고리의 다른 글
MVVM WPF 프로젝트의 DataGrid에서 여러 항목 선택 (0) | 2023.04.11 |
---|---|
WooCommerce - 제품 페이지 카테고리 가져오기 (0) | 2023.04.06 |
동일한 데이터베이스 내에서 컬렉션을 가장 빨리 복사할 수 있는 방법은 무엇입니까? (0) | 2023.04.06 |
반응 네이티브:네이티브 프로펠러 RCTView.maxHeight용 propType 없음 (0) | 2023.04.06 |
JSON 스키마에서의 RegEx 사용 (0) | 2023.04.06 |