diff options
| author | karl <noreply@maennchen1.de> | 2022-10-25 08:16:36 +0000 |
|---|---|---|
| committer | karl <noreply@maennchen1.de> | 2022-10-25 08:16:36 +0000 |
| commit | ba2962eb7141a61cdd97b96b6c16b257f41a1d07 (patch) | |
| tree | 87068fe8009684aefb75b82cc714e47c564f4803 | |
| parent | e46c55ff33b9ecacb540a99e57a646c9477e43d2 (diff) | |
- Feature: DSGVO Layer für das Google reCAPTCHA auf der Registrierungsseite
git-svn-id: https://[internal]/wordpress/plugins/wpsg4@8123 0d5edaf7-2b12-4e95-93f4-047927463d4b
| -rw-r--r-- | views/mods/mod_kundenverwaltung/register.phtml | 236 | ||||
| -rw-r--r-- | views/mods/mod_kundenverwaltung/settings_edit.phtml | 1 |
2 files changed, 142 insertions, 95 deletions
diff --git a/views/mods/mod_kundenverwaltung/register.phtml b/views/mods/mod_kundenverwaltung/register.phtml index 1a7ee0c..0e97e04 100644 --- a/views/mods/mod_kundenverwaltung/register.phtml +++ b/views/mods/mod_kundenverwaltung/register.phtml @@ -12,45 +12,44 @@ <?php if ($this->get_option('wpsg_form_validation') == '1') { ?>
- if (typeof jQuery.validationEngine == "object")
- {
-
- jQuery("#form-step2").validationEngine('attach', {promptPosition : "centerRight", scroll: false});
-
- jQuery('.wpsg_mod_kundenverwaltung_login').bind('click', function(){
- jQuery("#form-step2").validationEngine('detach');
- });
+ if (typeof jQuery.validationEngine == "object")
+ {
+
+ jQuery("#form-step2").validationEngine('attach', {promptPosition : "centerRight", scroll: false});
+
+ jQuery('.wpsg_mod_kundenverwaltung_login').bind('click', function(){
+ jQuery("#form-step2").validationEngine('detach');
+ });
- }
+ }
<?php } else if ($this->get_option('wpsg_form_validation') == '2') { ?>
- jQuery.validator.addMethod("cRequired", jQuery.validator.methods.required, "<?php echo __('Dieses Feld ist ein Pflichtfeld.', 'wpsg'); ?>");
- jQuery.validator.addClassRules('validate[required]', { cRequired: true } );
- jQuery("#form-step2").validate( {
- ignore: '',
- errorClass: 'wpsg_error',
- onsubmit: false,
- showErrors: function(errorMap, errorList) {
+ jQuery.validator.addMethod("cRequired", jQuery.validator.methods.required, "<?php echo __('Dieses Feld ist ein Pflichtfeld.', 'wpsg'); ?>");
+ jQuery.validator.addClassRules('validate[required]', { cRequired: true } );
+ jQuery("#form-step2").validate( {
+ ignore: '',
+ errorClass: 'wpsg_error',
+ onsubmit: false,
+ showErrors: function(errorMap, errorList) {
- this.defaultShowErrors();
+ this.defaultShowErrors();
- }
- } );
+ }
+ } );
- jQuery('.wpsg_registerButton').bind('click', function() {
+ jQuery('.wpsg_registerButton').bind('click', function() {
- var bReturn = jQuery('#form-step2').validate().form();
- if (jQuery('#form-step2 input.wpsg_error').length > 0) jQuery('#form-step2 input.wpsg_error')[0].focus();
- return bReturn;
-
- } );
+ var bReturn = jQuery('#form-step2').validate().form();
+ if (jQuery('#form-step2 input.wpsg_error').length > 0) jQuery('#form-step2 input.wpsg_error')[0].focus();
+ return bReturn;
+
+ } );
<?php } ?>
-// Visualisierung der Passwortstärke
-
+ // Visualisierung der Passwortstärke
jQuery('input[type=password]').keyup(function(){
var password = jQuery(this).val();
@@ -104,11 +103,9 @@ jQuery('#wpsg_pwd_speziell').removeClass('valid').addClass('invalid');
}
-
jQuery('#wpsg_pwd_info').show();
-
jQuery(this).blur(function(){
jQuery('#wpsg_pwd_info').hide();
@@ -116,15 +113,14 @@ });
});
-
-// Validierung Spam
- <?php
- if (isset($_GET["wpsg_spam_email"]) && $_GET["wpsg_spam_email"] != "") {
- echo "<p>Sie haben ein Feld ausgefüllt, das frei bleiben muss.</p>";
- exit;
- }
- ?>
+ // Validierung Spam
+ <?php
+ if (isset($_GET["wpsg_spam_email"]) && $_GET["wpsg_spam_email"] != "") {
+ echo "<p>Sie haben ein Feld ausgefüllt, das frei bleiben muss.</p>";
+ exit;
+ }
+ ?>
});
@@ -144,9 +140,18 @@ <div class="wpsg wpsg_checkout wpsg_register">
- <?php echo $this->writeFrontendMessage(); ?>
+ <style>
+ .placeholder { display: none !important; }
+ .m1_dsgvo_layer { position:relative; width:100%; height:100px; margin-bottom: 30px; }
+ .m1_dsgvo_layer > .placeholder_text { height:100px; font-size: small; position:relative; left:0; top:0; z-index:2; background-color:rgba(0, 0, 0, 0.75); display:flex; justify-content:center; align-items:center; color:#FFFFFF; flex-direction:column; padding:1rem; text-align:center; }
+ .m1_dsgvo_layer > .placeholder_text > button { color: rgba(0, 0, 0, 0.75); margin-top: 1rem;}
+ </style>
<form id="form-step2" method="post" action="<?php echo $this->callMod('wpsg_mod_kundenverwaltung', 'getRegisterURL'); ?>">
+
+ <?php echo $this->writeFrontendMessage(); ?>
+
+ <h2><?php echo __('Registrierung', 'sto'); ?></h2>
<?php if ($this->view['pflicht']['firma'] != '2') { ?>
<div class="wpsg_checkoutblock">
@@ -285,20 +290,20 @@ <?php } ?>
<?php } ?>
-
+
<?php if ($this->view['pflicht']['plz'] != '2') { ?>
<div class="wpsg_checkoutblock">
<label for="plz" class="wpsg_register"><?php echo __("Postleitzahl", "wpsg"); ?>
- <?php if ($this->view['pflicht']['plz'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
+ <?php if ($this->view['pflicht']['plz'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
</label>
- <input class="wpsg_input_text <?php echo (($this->view['pflicht']['plz'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="plz" name="wpsg[register][plz]" value="<?php echo htmlspecialchars(wpsg_getStr($this->view['data']['plz'])); ?>" />
+ <input class="<?php echo (($this->view['pflicht']['plz'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="plz" name="wpsg[register][plz]" value="<?php echo htmlspecialchars(wpsg_getStr($this->view['data']['plz'])); ?>" />
</div>
<?php } ?>
<?php if ($this->view['pflicht']['ort'] != '2') { ?>
<div class="wpsg_checkoutblock">
<label for="ort" class="wpsg_register"><?php echo __("Ort", "wpsg"); ?>
- <?php if ($this->view['pflicht']['ort'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
+ <?php if ($this->view['pflicht']['ort'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
</label>
<input class="<?php echo (($this->view['pflicht']['ort'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("ort", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="ort" name="wpsg[register][ort]" value="<?php echo htmlspecialchars(wpsg_getStr($this->view['data']['ort'])); ?>" />
</div>
@@ -307,7 +312,7 @@ <?php if ($this->view['pflicht']['land'] != '2') { ?>
<div class="wpsg_checkoutblock">
<label for="wpsg_land" class="wpsg_register"><?php echo __("Land", "wpsg"); ?>
- <?php if ($this->view['pflicht']['land'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
+ <?php if ($this->view['pflicht']['land'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
</label>
<select name="wpsg[register][land]" class="<?php echo (($this->view['pflicht']['land'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("land", (array)$this->view['error']))?'wpsg_error':''); ?>" id="wpsg_land">
<option value="-1"><?php echo __('Bitte auswählen', 'wpsg'); ?></option>
@@ -321,7 +326,7 @@ <?php if ($this->view['pflicht']['ustidnr'] != '2') { ?>
<div class="wpsg_checkoutblock">
<label for="wpsg_ustidnr" class="wpsg_register"><?php echo __("UStIdNr.", "wpsg"); ?>
- <?php if ($this->view['pflicht']['ustidnr'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
+ <?php if ($this->view['pflicht']['ustidnr'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
</label>
<input class="<?php echo (($this->view['pflicht']['ustidnr'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("ustidnr", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="wpsg_ustidnr" name="wpsg[register][ustidnr]" value="<?php echo htmlspecialchars(wpsg_getStr($this->view['data']['ustidnr'])); ?>" />
</div>
@@ -354,65 +359,79 @@ <?php /* Automatische Einbindung der benutzerdefinierten Kundenfelder ENDE */ ?>
<div class="wpsg_clear"></div>
- <?php if ($this->get_option('wpsg_mod_kundenverwaltung_recaptcha_register') === '1') { ?>
- <div class="wpsg_checkoutblock">
- <label>
- <?php echo __('SPAM Schutz Abfrage'); ?> <span class="wpsg_required">*</span>:
- <div class="g-recaptcha" data-sitekey="<?php echo $this->get_option('wpsg_mod_kundenveraltung_recaptcha_key'); ?>"></div>
- </label>
- </div>
- <div class="wpsg_clear"></div>
- <?php } ?>
-
- <?php if ($this->get_option('wpsg_mod_kundenverwaltung_mathcaptcha') === '1') {
-
- $number1 = rand(0, 9);
- $number2 = rand(0, 10);
- $arOperator = ['+', '-', '*']; $operator = $arOperator[array_rand($arOperator)];
-
- $time = time();
-
- switch ($operator) {
-
- case '+': $captcha_result = $number1 + $number2; break;
- case '-': $captcha_result = $number1 - $number2; break;
- case '*': $captcha_result = $number1 * $number2; break;
-
- default: throw new \Exception();
-
- }
-
- \set_transient('wpsg_mod_kundenverwaltung_mathcaptcha_result', $captcha_result);
-
- ?>
-
- <div class="wpsg_checkoutblock">
- <label for="wpsg_mod_kundenverwaltung_mathcaptcha" class="wpsg_register"><?php echo wpsg_translate(
- __("Ergebnis aus #1# #2# #3#", "wpsg"),
- $number1, $operator, $number2
- ); ?>:
- <span class="wpsg_required">*</span>
- </label>
- <input
- class="validate[required] wpsg_register <?php echo ((in_array("wpsg_mod_kundenverwaltung_mathcaptcha", (array)$this->view['error']))?'wpsg_error':''); ?>"
- type="text" id="wpsg_mod_kundenverwaltung_mathcaptcha" name="wpsg_mod_kundenverwaltung_mathcaptcha"
- placeholder="SPAM Schutz"
- value="" />
- </div>
-
- <?php } ?>
-
+ <?php if ($this->get_option('wpsg_mod_kundenverwaltung_recaptcha_register') === '1') { ?>
+ <div class="wpsg_checkoutblock">
+ <label class="recaptcha_v2_checkout ">
+
+ <?php echo __('SPAM Schutz Abfrage'); ?> <span class="wpsg_required">*</span>:
+
+ <?php if ($this->get_option('wpsg_mod_kundenverwaltung_recaptcha_dsgvo_layer') != '1') { ?>
+ <div class="g-recaptcha" data-sitekey="<?php echo $this->get_option('wpsg_mod_kundenveraltung_recaptcha_key'); ?>"></div>
+ <?php } else { ?>
+ <div class="wpsg_recaptcha placeholder"> <!-- Platzhalter für das Google ReCAPTCHA --> </div>
+ <div class="m1_dsgvo_layer ">
+ <div class="placeholder_text">
+ <strong>Datenschutz ist uns wichtig!</strong>
+ Daher wird das Google ReCAPTCHA erst geladen, wenn sie der Verwendung des Drittanbieters "Google LLC" zustimmen durch den möglicherweise Cookies gesetzt werden.<br />
+ <button class="layer_link wpsg_required">Ich bin damit einverstanden.</button>
+ </div>
+ </div>
+ <?php } ?>
+
+ </label>
+ </div>
+ <div class="wpsg_clear"></div>
+ <?php } ?>
+
+ <?php if ($this->get_option('wpsg_mod_kundenverwaltung_mathcaptcha') === '1') {
+
+ $number1 = rand(0, 9);
+ $number2 = rand(0, 10);
+ $arOperator = ['+', '-', '*']; $operator = $arOperator[array_rand($arOperator)];
+
+ $time = time();
+
+ switch ($operator) {
+
+ case '+': $captcha_result = $number1 + $number2; break;
+ case '-': $captcha_result = $number1 - $number2; break;
+ case '*': $captcha_result = $number1 * $number2; break;
+
+ default: throw new \Exception();
+
+ }
+
+ \set_transient('wpsg_mod_kundenverwaltung_mathcaptcha_result', $captcha_result);
+
+ ?>
+
+ <div class="wpsg_checkoutblock">
+ <label for="wpsg_mod_kundenverwaltung_mathcaptcha" class="wpsg_register"><?php echo wpsg_translate(
+ __("Ergebnis aus #1# #2# #3#", "wpsg"),
+ $number1, $operator, $number2
+ ); ?>:
+ <span class="wpsg_required">*</span>
+ </label>
+ <input
+ class="validate[required] wpsg_register <?php echo ((in_array("wpsg_mod_kundenverwaltung_mathcaptcha", (array)$this->view['error']))?'wpsg_error':''); ?>"
+ type="text" id="wpsg_mod_kundenverwaltung_mathcaptcha" name="wpsg_mod_kundenverwaltung_mathcaptcha"
+ placeholder="SPAM Schutz"
+ value="" />
+ </div>
+
+ <?php } ?>
+
<div class="wpsg_mandatoryfield_hint">
<?php echo wpsg_translate(__('Mit #1# gekennzeichnete Felder sind Pflichtfelder.', 'wpsg'), '<span class="wpsg_required">*</span>'); ?>
</div>
<?php /* versteckte Sicherheitsabfrage als Bot-Schutz START*/ ?>
<span style="display:none">
- <label for="wpsg_spam_email">Das Feld muss frei bleiben:</label>
- <input type="text" name="wpsg_spam_email" id="wpsg_spam_email" title=" dieses Feld muss frei bleiben " />
+ <label for="wpsg_spam_email">Das Feld muss frei bleiben:</label>
+ <input type="text" name="wpsg_spam_email" id="wpsg_spam_email" title=" dieses Feld muss frei bleiben " />
</span>
<?php /* versteckte Sicherheitsabfrage als Bot-Schutz ENDE*/ ?>
-
+
<br />
<input type="submit" class="wpsg_button wpsg_registerButton" value="<?php echo __('Registrieren', 'wpsg'); ?>" name="wpsg_mod_kundenverwaltung_register" />
@@ -421,4 +440,31 @@ <div class="wpsg_clear"></div>
</form>
+
+ <!-- <div class="g-recaptcha" data-sitekey="<?php echo $this->get_option('wpsg_mod_kundenveraltung_recaptcha_key'); ?>"></div> -->
+
+ <script>
+ // DSGVO Layer Script
+ document.querySelector('.layer_link').addEventListener('click', function() {
+
+ const recaptcha = document.createElement("div");
+ const a = document.createAttribute("data-sitekey");
+ const b = document.createAttribute("style");
+ a.value = "<?php echo $this->get_option('wpsg_mod_kundenveraltung_recaptcha_key'); ?>";
+ b.value = "float: left !important;";
+ recaptcha.classList.add("g-recaptcha");
+ recaptcha.setAttributeNode(a);
+ recaptcha.setAttributeNode(b);
+
+ document.querySelector('.wpsg_recaptcha').appendChild(recaptcha);
+ (function(){var w=window,C='___grecaptcha_cfg',cfg=w[C]=w[C]||{},N='grecaptcha';var gr=w[N]=w[N]||{};gr.ready=gr.ready||function(f){(cfg['fns']=cfg['fns']||[]).push(f);};w['__recaptcha_api']='https://www.google.com/recaptcha/api2/';(cfg['render']=cfg['render']||[]).push('onload');w['__google_recaptcha_client']=true;var d=document,po=d.createElement('script');po.type='text/javascript';po.async=true;po.src='https://www.gstatic.com/recaptcha/releases/vP4jQKq0YJFzU6e21-BGy3GP/recaptcha__de.js';po.crossOrigin='anonymous';po.integrity='sha384-xxpEMChSTl1oMpSrXrILE1mQOlVQNv6OGibce0r0HX1HeHF72bSDheOIehafBC9Y';var e=d.querySelector('script[nonce]'),n=e&&(e['nonce']||e.getAttribute('nonce'));if(n){po.setAttribute('nonce',n);}var s=d.getElementsByTagName('script')[0];s.parentNode.insertBefore(po, s);})();
+
+ document.querySelector('.m1_dsgvo_layer').classList.add('placeholder');
+ document.querySelector('.wpsg_recaptcha').classList.remove('placeholder');
+
+ event.preventDefault();
+
+ });
+ </script>
+
</div>
\ No newline at end of file diff --git a/views/mods/mod_kundenverwaltung/settings_edit.phtml b/views/mods/mod_kundenverwaltung/settings_edit.phtml index 8bdf87b..e184c53 100644 --- a/views/mods/mod_kundenverwaltung/settings_edit.phtml +++ b/views/mods/mod_kundenverwaltung/settings_edit.phtml @@ -75,6 +75,7 @@ <?php echo wpsg_drawForm_Input('wpsg_mod_kundenveraltung_recaptcha_key', __('Websiteschlüssel', 'wpsg'), $this->get_option('wpsg_mod_kundenveraltung_recaptcha_key')); ?>
<?php echo wpsg_drawForm_Input('wpsg_mod_kundenveraltung_recaptcha_secretkey', __('Geheimer Schlüssel', 'wpsg'), $this->get_option('wpsg_mod_kundenveraltung_recaptcha_secretkey')); ?>
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_kundenverwaltung_recaptcha_dsgvo_layer', __('DSGVO Layer für das Recaptcha', 'wpsg'), $this->get_option('wpsg_mod_kundenverwaltung_recaptcha_dsgvo_layer')); ?>
</div>
|
