<?php
namespace MetForm\Core\Forms;
defined( 'ABSPATH' ) || exit;
Class Builder{
use \MetForm\Traits\Singleton;
public function get_editor( $form_id ){
$builder_form_id = get_post($form_id);
$builder_form_id = $builder_form_id->ID;
$url = get_admin_url() . '/post.php?post='.$builder_form_id.'&action=elementor';
wp_safe_redirect( $url );
exit;
}
public function create_form($title, $template_id = 0, $data = []){
$template_id = 'template-' . (($template_id == '') ? 0 : $template_id);
$title = ($title == '' ? 'New Form # ' . time() : $title);
$template_content = \MetForm\Templates\Base::instance()->get_template_contents($template_id);
$user_id = get_current_user_id();
$defaults = array(
'post_author' => $user_id,
'post_content' => '',
'post_title' => $title,
'post_status' => 'publish',
'post_type' => 'metform-form',
);
$builder_form_id = wp_insert_post($defaults);
$default_settings = array_map(function(){
return '';
}, \MetForm\Core\Forms\Base::instance()->form->get_form_settings_fields());
$default_settings['success_message'] = esc_html__('Thank you! Form submitted successfully.', 'metform');
$default_settings['store_entries'] = '1';
$default_settings['form_title'] = $defaults['post_title'];
if(isset($data['form_type']) && !empty($data['form_type'])){
$default_settings['form_type'] = $data['form_type'];
// Unset form type from $data array
unset($data['form_type']);
}
update_post_meta( $builder_form_id, '_wp_page_template', 'elementor_canvas' );
update_post_meta( $builder_form_id, \MetForm\Core\Forms\Base::instance()->form->get_key_form_settings(), $default_settings );
update_post_meta( $builder_form_id, '_elementor_edit_mode', 'builder');
if($data != ''){
update_post_meta( $builder_form_id, '_metform_cloned_id', $template_id);
}
if($template_content != null){
update_post_meta($builder_form_id, '_elementor_data', json_encode($template_content));
}
return $builder_form_id;
}
}