Submit
Path:
~
/
home
/
getwphos
/
www
/
giulianos
/
wp-content
/
plugins
/
gravityforms
/
includes
/
template-library
/
endpoints
/
File Content:
class-gf-create-form-template-endpoint.php
<?php namespace Gravity_Forms\Gravity_Forms\Template_Library\Endpoints; use GFForms; use GFCommon; use Gravity_Forms\Gravity_Forms\Save_Form\GF_Save_Form_Service_Provider; use Gravity_Forms\Gravity_Forms\Template_Library\Config\GF_Template_Library_Config; use Gravity_Forms\Gravity_Forms\Template_Library\Templates\GF_Template_Library_Template; use Gravity_Forms\Gravity_Forms\Template_Library\Templates\GF_Templates_Repository; use Gravity_Forms\Gravity_Forms\Template_Library\Templates\GF_Templates_Store; /** * AJAX Endpoint for Creating a form from a template. * * @since 2.7 * * @package Gravity_Forms\Gravity_Forms\Template_Library\Endpoints */ class GF_Create_Form_Template_Library_Endpoint { // AJAX action name. const ACTION_NAME = 'create_from_template'; /** * The template id to import. * * @since 2.7 * * @var string $template_id */ protected $template_id; /** * The form title of the form to be imported from a template or created. * * @since 2.7 * * @var string $form_title */ protected $form_title; /** * The form title of the form to be imported from a template or created. * * @since 2.7 * * @var string $form_description; */ protected $form_description = ''; /** * The templates' data store to retrieve the templates' data from. * * @since 2.7 * * @var GF_Templates_Store $templates_repos */ protected $templates_store; /** * Endpoint constructor. * * @since 2.7 * * @param GF_Templates_Store $templates_store The templates' data store to retrieve the templates' data from. */ public function __construct( GF_Templates_Store $templates_store ) { $this->templates_store = $templates_store; } /** * Handle creating a form from a template or a blank form. * * @since 2.7 * * @return void */ public function handle() { check_ajax_referer( 'create_from_template', 'nonce' ); if ( ! GFCommon::current_user_can_any( 'gravityforms_create_form' ) ) { wp_send_json_error( 'Unauthorized', 403 ); } $this->template_id = sanitize_text_field( rgpost( 'templateId' ) ); $this->form_title = sanitize_text_field( rgpost( 'form_title' ) ); $this->form_description = sanitize_text_field( rgpost( 'form_description' ) ); if ( ! $this->template_id || ! $this->form_title ) { wp_send_json_error( array( 'message' => 'Missing required parameter' ), 400 ); } if ( $this->template_id === 'blank' ) { $template = new GF_Template_Library_Template( array( 'id' => 'blank', 'title' => '', 'description' => '', 'form_meta' => array( 'fields' => array(), ), ) ); } else { $template = $this->templates_store->get( $this->template_id ); } if ( ! is_a( $template, GF_Template_Library_Template::class ) ) { wp_send_json_error( array( 'message' => 'Invalid template ID' ), 400 ); } $form_meta = $template->get_form_meta(); $form_meta['title'] = $this->form_title; $form_meta['description'] = $this->form_description; if ( $this->template_id !== 'blank' ) { $form_meta['template_id'] = $this->template_id; } $form_crud_handler = GFForms::get_service_container()->get( GF_Save_Form_Service_Provider::GF_FORM_CRUD_HANDLER ); $result = $form_crud_handler->save( 0, wp_json_encode( $form_meta ) ); $status = rgar( $result, 'status' ); $form_id = rgars( $result, 'meta/id', false ); if ( is_numeric( $form_id ) && $form_id !== 0 ) { wp_send_json_success( array( 'form_id' => abs( $form_id ), ) ); } wp_send_json_error( array( 'message' => $status, ) ); } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
class-gf-create-form-template-endpoint.php
3653 bytes
0644
N4ST4R_ID | Naxtarrr