form-preview.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. add_action( 'init', 'ninja_forms_preview_form' );
  3. function ninja_forms_preview_form() {
  4. global $ninja_forms_append_page_form_id;
  5. if( ! empty ( $_REQUEST['form_id'] ) AND ! empty ( $_REQUEST['preview'] ) ) { //I
  6. $form_id = absint( $_REQUEST['form_id'] );
  7. $ninja_forms_append_page_form_id = array($form_id);
  8. add_filter( 'the_content', 'ninja_forms_append_to_page', 9999 );
  9. }
  10. }
  11. function ninja_forms_preview_link( $form_id = '', $echo = true ) {
  12. if( $form_id == '' ){
  13. if( isset( $_REQUEST['form_id'] ) ){
  14. $form_id = absint( $_REQUEST['form_id'] );
  15. }else{
  16. $form_id = '';
  17. }
  18. }
  19. $base = home_url();
  20. $form_data = ninja_forms_get_form_by_id( $form_id );
  21. $append_page = Ninja_Forms()->form( $form_id )->get_setting( 'append_page' );
  22. if ( empty( $append_page ) ) {
  23. $opt = nf_get_settings();
  24. if ( isset ( $opt['preview_id'] ) ) {
  25. $page_id = $opt['preview_id'];
  26. } else {
  27. $page_id = '';
  28. }
  29. } else {
  30. $page_id = $append_page;
  31. }
  32. if( $echo ){
  33. $preview_link = '<a target="_blank" href="' . $base . '/?page_id=' . $page_id . '&preview=true&form_id=' . $form_id . '">' . __( 'Preview Form', 'ninja-forms' ) . '</a>';
  34. }else{
  35. $preview_link = $base . '/?page_id=' . $page_id . '&preview=true&form_id=' . $form_id;
  36. }
  37. return $preview_link;
  38. }