Upload folder via GUI - inc
This commit is contained in:
44
inc/classes/class-builder.php
Normal file
44
inc/classes/class-builder.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
if (!defined('ABSPATH')) exit;
|
||||
class WMF_Builder {
|
||||
private static $instance=null;
|
||||
public static function instance() {
|
||||
if(is_null(self::$instance)){self::$instance=new self();self::$instance->hook();}
|
||||
return self::$instance;
|
||||
}
|
||||
public function hook() {
|
||||
add_action('wp_ajax_wmf_get_field_settings',array($this,'ajax_field_settings'));
|
||||
add_action('wp_ajax_wmf_preview_form', array($this,'ajax_preview'));
|
||||
}
|
||||
public function ajax_field_settings() {
|
||||
check_ajax_referer('wmf_admin','nonce');
|
||||
if(!current_user_can('manage_options')) wp_die();
|
||||
$type=sanitize_text_field($_POST['field_type']??'');
|
||||
$field=json_decode(stripslashes($_POST['field_data']??'{}'),true);
|
||||
$obj=wmf_get_field($type);
|
||||
if(!$obj) wp_send_json_error('Unbekannter Feldtyp: '.$type);
|
||||
ob_start(); $obj->settings_panel($field); $html=ob_get_clean();
|
||||
wp_send_json_success(array('html'=>$html));
|
||||
}
|
||||
public function ajax_preview() {
|
||||
check_ajax_referer('wmf_admin','nonce');
|
||||
if(!current_user_can('manage_options')) wp_die();
|
||||
$form_id=intval($_POST['form_id']??0);
|
||||
$fields=json_decode(stripslashes($_POST['fields']??'[]'),true);
|
||||
$meta=wmf_get_form_meta($form_id);
|
||||
$meta['fields']=$fields;
|
||||
ob_start();
|
||||
echo '<div class="wmf-preview-wrap">';
|
||||
foreach($fields as $field) {
|
||||
$obj=wmf_get_field($field['type']??'');
|
||||
if(!$obj) continue;
|
||||
echo '<div class="wmf-field-wrap">';
|
||||
$obj->render($field,'');
|
||||
echo '</div>';
|
||||
}
|
||||
echo '<div class="wmf-submit-wrap"><button type="button" class="wmf-submit-button" disabled>'.esc_html($meta['submit_label']?:'Absenden').'</button></div>';
|
||||
echo '</div>';
|
||||
$html=ob_get_clean();
|
||||
wp_send_json_success(array('html'=>$html));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user