Weil das Plugin so #$%&! programmiert ist, dass beim Shortcode [consent_form]
die Funktion wphrgdpr_consent_form_shortcode
das Formular direkt AUSGIBT (womit es zu Beginn der Seite erscheint), statt es ZURÜCKZUGEBEN (womit es an der Stelle des Shortcodes erscheinen würde).
Siehe Zeile 19 und Zeilen 54-68 von /plugins/wp-hr-gdpr/includes/frontend/class-wp-hr-shortcode-handler.php. Die Ausgabe erfolgt über ein
include_once WPHRGDPR_PLUGIN_PATH . 'includes/frontend/shortcode-template/consent-form-template.php';
Wenn du kannst/willst, schreibe dir einen Wrapper-Shortcode [my_consent_form]
zum Original-Shortcode, der die vorzeitige Ausgabe abfängt und so zurückgibt, wie es für Shortcodes üblich ist, etwa so (ungetestete Skizze!):
function my_consent_form_return() {
ob_start();
do_shortcode('[consent_form]');
return ob_get_clean();
}
add_shortcode( 'my_consent_form', 'my_consent_form_return' );
(Naja, nur ’ne Skizze halt. Könnte man jetzt noch erweitern um eine Erkennung, ob/sobald die Entwickler das Ausgabe-Verhalten ihres Shortcodes ändern.)
Zusätzlich zu o.g. Antwort noch der Hinweis: das von dir genutzte Plugin ist extrem alt und wurde seit über 3 Jahren nicht mehr aktualisiert. Die Code-Qualität ist miserabel. Ich würde dir empfehlen ein anderes zu verwenden. Für Consent Dialoge gibt es sehr viele, sehr viel bessere Lösungen: https://wordpress.org/plugins/tags/gdpr/
Sehr geehrter @threadi und @cyrfer ,
vielen Dank für eure Antworten. Ich bin auch an der Stelle stehen geblieben, aber mit der Hoffnung, dass ich zu wenig über Shortcode weiß. Ich habe diese Teil auf eine Andere Seite als PopUp verschoben. Das funktioniert sogar besser, als ich ursprünglich geplant habe.
Vielen Dank für eure Hilfe!!!
Danke für die Rückmeldung und „Gelöst“-Markieren. 👍