Files
WP-Multi-Formular/inc/classes/class-shortcode.php
2026-04-13 18:52:46 +02:00

37 lines
1.6 KiB
PHP

<?php
if (!defined('ABSPATH')) exit;
class WMF_Shortcode {
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_shortcode('wp_multi_formular',array($this,'render'));
add_action('wp_enqueue_scripts',array($this,'enqueue_assets'));
add_action('init',array($this,'start_session'),1);
}
public function start_session() { if(!session_id()&&!headers_sent()) session_start(); }
public function render($atts) {
$atts=shortcode_atts(array('id'=>0),$atts,'wp_multi_formular');
$id=intval($atts['id']);
if(!$id) return '<p class="wmf-error">Bitte geben Sie eine Formular-ID an.</p>';
return WMF_Form_Renderer::render($id);
}
public function enqueue_assets() {
wp_enqueue_style('wp-multi-formular',WMF_URL.'assets/css/frontend.css',array(),WMF_VERSION);
wp_enqueue_script('wp-multi-formular',WMF_URL.'assets/js/frontend.js',array('jquery'),WMF_VERSION,true);
wp_localize_script('wp-multi-formular','WMF_Frontend',array(
'ajax_url'=>admin_url('admin-ajax.php'),
'i18n'=>array(
'required' =>'Dieses Feld ist ein Pflichtfeld.',
'email' =>'Bitte geben Sie eine gültige E-Mail-Adresse ein.',
'url' =>'Bitte geben Sie eine gültige URL ein.',
'step_of' =>'Schritt %1 von %2',
'next' =>'Weiter',
'prev' =>'Zurück',
),
));
}
}