2015-12-19 27 views
11

Stworzyłem stronę WordPress z formularzem Ninja, która zbiera różne dane o produkcie, w tym niektóre przesłane obrazy. Stronę z formularzem można uzyskać z głównego menu, klikając element "Wejście", aby użytkownik nie musiał uzyskać dostępu do zaplecza w celu przesłania swoich danych produktu.Tworzenie stron z danych formularza Ninja

Chcę teraz umieścić te dane w niestandardowym typie postu o nazwie "Lista". W końcu będą tysiące takich zestawów danych, a tysiące stron "Listing", kiedy ludzie przychodzą na stronę, kliknij Input w menu głównym, aby przejść do strony z formularzem Ninja i wypełnić go.

Czy ktoś mógłby mi powiedzieć, w jaki sposób będą teraz budować strony z danymi zebranymi w formularzu?

Używam opcji Front-End Posta firmy Ninja, która prawdopodobnie utworzy stronę z danych formularza. Ta wtyczka ma kilka ustawień tworzenia postów, w których możesz wybrać typ postu do utworzenia, ale to nie działa dla mnie. Oczekuję, że przesłane dane formularza pojawią się pod deską rozdzielczą | Aukcje, ale po przesłaniu formularza nic tam nie ma.

Czy ktoś to zrobił?

Dzięki za pomoc.

Odpowiedz

0

The Ninja Forms Front-end Rozszerzenie publikacji nie jest przeznaczone do wyświetlania danych do przesyłania formularzy z przodu.

Od: https://ninjaforms.com/extensions/front-end-posting/

„Ninja Forms Czołowy przedłużenie delegowania daje moc WordPress postu edytorze na dowolnym dostępnym publicznie stronie wybrać.”

Jeśli chcesz pokazać dane z formularzy Ninja Forms z przodu, będziesz musiał pobrać je z bazy danych za pomocą kodu w functions.php lub pisząc wtyczkę (zalecane). Możesz następnie analizować i manipulować nimi oraz tworzyć krótkie kody, które pozwolą Ci łatwo wstawiać sformatowane dane do przesyłania w postach lub na stronach Wordpress.

Oto link do żądania funkcji, z prośbą o to samo. Autor tej prośby zamieścił link do wtyczki (kliknij Pobierz jako wtyczkę), którą napisał, co może zrobić, co chcesz, lub daje dodatkowe informacje na temat tego, jak możesz to zaimplementować.

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

0

Jeśli nie przeszkadza ci zapłacić trochę pieniędzy na wtyczce polecam używając formy grawitacji, a następnie formy ninja dla bardziej zaawansowanych rzeczy jak ta.

Ręcznie utworzę niestandardowy typ wpisu "oproep" i użyłem wtyczki gravityforms do utworzenia niestandardowego postu z typu oproep, gdy użytkownik prześle formularz.

Ponieważ używasz niestandardowych stron archiwalnych postów, strona www.mysite.com/oproep zostanie automatycznie utworzona, więc masz już listę "Listings". Pojedyncze strony www.mysite.com/oproep/title również zostaną domyślnie utworzone, możesz też zastąpić te szablony, jeśli chcesz, w zależności od motywu.

Jedyne co musisz zrobić, to dodać kilka linii php do funkcji functions.php (lub napisać własną wtyczkę), która dodaje niestandardowy typ wpisu. Reszta wszystko działa automatycznie.

Poszedłem tak daleko, jak pisanie kodu, aby użytkownicy mogli edytować swoje zgłoszenia, czytać niestandardowe znaczniki taksonomii w menu rozwijanym itp.Masz dużo więcej opcji przy użyciu grawitacyjnych form.

+0

To nie * tak naprawdę * odpowiada na pytanie, które odnosi się konkretnie do platformy Ninja. Może być lepiej dopasowany jako komentarz. – ToothlessRebel

1

Myślę, że możesz używać tylko form Ninja bez rozszerzeń i hakować bezpośrednio w "ninja_forms_after_submission", który uruchamia się po przesłaniu i pozwala ci użyć danych przesłanych i wykonać działania.

To jest podstawa kodu początkowego, aby osiągnąć wynik, ale musi być dostosowany do Twoich potrzeb i struktury formularza.

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); 

} 

Kod ten należy skopiować do pliku functions.php

nie testowane oczywiście.

Powodzenia;)

Powiązane problemy