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 '