NF_Upgrade.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. add_action( 'wp_ajax_ninja_forms_ajax_migrate_database', 'ninja_forms_ajax_migrate_database' );
  3. function ninja_forms_ajax_migrate_database(){
  4. if( ! current_user_can( apply_filters( 'ninja_forms_admin_upgrade_migrate_database_capabilities', 'manage_options' ) ) ) return;
  5. if ( ! isset( $_POST[ 'security' ] ) ) return;
  6. if ( ! wp_verify_nonce( $_POST[ 'security' ], 'ninja_forms_upgrade_nonce' ) ) return;
  7. $migrations = new NF_Database_Migrations();
  8. $sure = true;
  9. $really_sure = true;
  10. $nuke_multisite = false;
  11. $migrations->nuke( $sure, $really_sure, $nuke_multisite );
  12. $migrations->migrate();
  13. echo json_encode( array( 'migrate' => 'true' ) );
  14. wp_die();
  15. }
  16. add_action( 'wp_ajax_ninja_forms_ajax_import_form', 'ninja_forms_ajax_import_form' );
  17. function ninja_forms_ajax_import_form(){
  18. if( ! current_user_can( apply_filters( 'ninja_forms_admin_upgrade_import_form_capabilities', 'manage_options' ) ) ) return;
  19. $import = stripslashes( $_POST[ 'import' ] );
  20. $form_id = ( isset( $_POST[ 'formID' ] ) ) ? absint( $_POST[ 'formID' ] ) : '';
  21. WPN_Helper::delete_nf_cache( $form_id ); // Bust the cache.
  22. Ninja_Forms()->form()->import_form( $import, TRUE, $form_id, TRUE );
  23. if( isset( $_POST[ 'flagged' ] ) && $_POST[ 'flagged' ] ){
  24. $form = Ninja_Forms()->form( $form_id )->get();
  25. $form->update_setting( 'lock', TRUE );
  26. $form->save();
  27. }
  28. echo json_encode( array( 'export' => $_POST[ 'import' ], 'import' => $import ) );
  29. wp_die();
  30. }
  31. add_action( 'wp_ajax_ninja_forms_ajax_import_fields', 'ninja_forms_ajax_import_fields' );
  32. function ninja_forms_ajax_import_fields(){
  33. if( ! current_user_can( apply_filters( 'ninja_forms_admin_upgrade_import_fields_capabilities', 'manage_options' ) ) ) return;
  34. $fields = stripslashes( $_POST[ 'fields' ] ); // TODO: How to sanitize serialized string?
  35. $fields = maybe_unserialize( $fields );
  36. foreach( $fields as $field ) {
  37. Ninja_Forms()->form()->import_field( $field, $field[ 'id' ], TRUE );
  38. }
  39. echo json_encode( array( 'export' => $_POST[ 'fields' ], 'import' => $fields ) );
  40. wp_die();
  41. }