FormEndpoints.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. class NF_AJAX_Controllers_FormEndpoints extends NF_Abstracts_Controller
  3. {
  4. /*
  5. * Constructor
  6. */
  7. public function __construct()
  8. {
  9. // add_action( 'wp_ajax_nf_get_forms', array( $this, 'get_forms' ) );
  10. // add_action( 'wp_ajax_nf_get_new_form_templates', array( $this, 'get_new_form_templates' ) );
  11. // add_action( 'wp_ajax_nf_delete', array( $this, 'delete' ) );
  12. // add_action( 'wp_ajax_nf_duplicate', array( $this, 'duplicate' ) );
  13. }
  14. /*
  15. *
  16. */
  17. public function get_forms()
  18. {
  19. $db_forms_controller = new NF_Database_FormsController();
  20. $forms_json = $db_forms_controller->getFormsData();
  21. $this->_respond( $forms_json );
  22. }
  23. /*
  24. *
  25. */
  26. public function get_new_form_templates()
  27. {
  28. $templates = Ninja_Forms()->config( 'NewFormTemplates' );
  29. die( json_encode( $templates ) );
  30. }
  31. /*
  32. *
  33. */
  34. public function delete()
  35. {
  36. $id = $_REQUEST[ 'form_id' ];
  37. try{
  38. $form = Ninja_Forms()->form( $id )->get();
  39. $this->_data[ 'delete' ] = $form->delete();;
  40. } catch( Exception $e ) {
  41. $this->_data[ 'errors' ][] = $e->getMessage();
  42. }
  43. $this->_respond();
  44. }
  45. public function duplicate()
  46. {
  47. $form_id = $_REQUEST[ 'form_id' ];
  48. //Copied and pasted from NF_Database_models_Form::duplicate line 136
  49. $form = Ninja_Forms()->form( $form_id )->get();
  50. $settings = $form->get_settings();
  51. $new_form = Ninja_Forms()->form()->get();
  52. $new_form->update_settings( $settings );
  53. $form_title = $form->get_setting( 'title' );
  54. $new_form_title = $form_title . " - " . __( 'copy', 'ninja-forms' );
  55. $new_form->update_setting( 'title', $new_form_title );
  56. $new_form->update_setting( 'lock', 0 );
  57. $new_form->save();
  58. $new_form_id = $new_form->get_id();
  59. $fields = Ninja_Forms()->form( $form_id )->get_fields();
  60. foreach( $fields as $field ){
  61. $field_settings = $field->get_settings();
  62. $field_settings[ 'parent_id' ] = $new_form_id;
  63. $new_field = Ninja_Forms()->form( $new_form_id )->field()->get();
  64. $new_field->update_settings( $field_settings )->save();
  65. }
  66. $actions = Ninja_Forms()->form( $form_id )->get_actions();
  67. foreach( $actions as $action ){
  68. $action_settings = $action->get_settings();
  69. $new_action = Ninja_Forms()->form( $new_form_id )->action()->get();
  70. $new_action->update_settings( $action_settings )->save();
  71. }
  72. return $new_form_id;
  73. }
  74. }