GDPR privacy policy

If you are runnig Joomla 3.x and Virtuemart 3.x please post to this forum your questions or support tickets about One Page Checkout

GDPR privacy policy

Postby info@.....com » Wed May 02, 2018 2:07 pm

Hi, I'd need a second "TOS" checkebox and link for privaacy policy in order to comply with the new GDPR

How can I do this?

Thanks!
info@.....com
 
Posts: 22
Joined: Wed Oct 11, 2017 1:36 pm

Re: GDPR privacy policy

Postby inkoop@.....nl » Wed May 02, 2018 4:36 pm

Yes, need that to know as well.

But I think the admin is on holiday, because he is not responding on the forum, nor on e-mail for a couple of weeks now. We have to wait...
inkoop@.....nl
 
Posts: 35
Joined: Thu May 09, 2013 10:54 am

Re: GDPR privacy policy

Postby admin » Thu May 03, 2018 1:33 pm

hello, the second checkbox is available in OPC as "italian privacy checkbox" and it can be enabled wtihin registration tab (enable privacy checkbox) where you can set default status of the checkbox (checked or not checked)

the checkbox is already required by all EU regislation but had been ignored by many countries. Italians were the first to require this strictly on all sites.

within GDPR privacy checkbox and marketing/newsletter checkbox per our knowledge cannot be the same checkboxes and thus you may want to enable the "subscription checkbox" at the same tab as well - it's value is primarely handled with acymailing (i.e. storing the user with acymailing list) but it can also be stored within our mailchimp plugin (if checked user gets registered at mailchimp as well).

to tune GDPR we would like to add timestamps and maybe even history to these checkboxes so instead of storing 1 or 0 for checked/not checked it would make more sense to store the last approval timestamp.

best regards, stan
admin
Site Admin
 
Posts: 2708
Joined: Wed Jan 06, 2010 11:43 pm

Re: GDPR privacy policy

Postby info@.....com » Fri May 04, 2018 1:29 pm

Hi Stan,

Thank you so much for your reply!. I have enabled the italian privacy checkbox and it works as long as customer is not logged in. Once the customer logs in at checkout it is not displayed anymore.

Also, we'd need the link to privacy policy to open as a pop up as terms of service. How can I do this?

Thanks again!
info@.....com
 
Posts: 22
Joined: Wed Oct 11, 2017 1:36 pm

Re: GDPR privacy policy

Postby admin » Mon May 07, 2018 12:15 pm

hello, as far as i know it's not required to ask the customer repeatedly for confirming the privacy policy once his data are loaded from his previous data history, but to display the italian checkbox you may want to just add:

<?php echo $italian_checkbox; ?>

within bottom secion of your onepage.logged.tpl.php + onepage.registration.tpl.php (if not already there)

or if you want the same layout and features for logged in users as you got for unlogged you may want to just include the unlogged template:

1. drop all contents from onepage.logged.tpl.php
2. make it look like:

Code: Select all
<?php
require(__DIR__.DIRECTORY_SEPARATOR.'onepage.unlogged.tpl.php');


no other code is required within the file if you want to use same features as for unlogged (i.e. same checkboxes, same order of payment, shipping, address layouts, etc.. )

best regards, stan
admin
Site Admin
 
Posts: 2708
Joined: Wed Jan 06, 2010 11:43 pm

Re: GDPR privacy policy

Postby info@.....com » Mon May 07, 2018 1:25 pm

Thank you so much, Stan!

I have one more question. Is it possible that privacy policy opens in a pop up/fancybox , as it is done in tos?

Right now clicking the privacy policy link opens a new page and takes the customer out of the checkout area.

Thanks in advance
info@.....com
 
Posts: 22
Joined: Wed Oct 11, 2017 1:36 pm

Re: GDPR privacy policy

Postby admin » Mon May 07, 2018 3:12 pm

hello, i just did this for another customer of ours, the modification is available in clean_simple2 and in the next OPC release i will modify all opc core themes as well for this feature.

this is how to make it work:

1. configure the privacy policy article at OPC's registration tab close to the Italian/privacy checkbox
2. configure the article per all your frontend languages
3. when using a custom theme you may want to open your:

\components\com_onepage\themes\clean_simple2\overrides\italian_checkbox.php

and add this section:

Code: Select all
<?php
               if (!empty($privacy_link)) {
               JHTMLOPC::_('behavior.modal', 'a.opcmodalprivacy');
               ?>
               
               <a target="_blank" rel="{handler: 'iframe', size: {x: 500, y: 400}}" class="opcmodalprivacy"  href="<?php echo $privacy_link; ?>" onclick="javascript: return Onepage.op_openlink(this); "><?php echo JText::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL_LINK'); ?></a>
               <?php
               }
               ?>



All language codes used for this feature are:
COM_ONEPAGE_ITALIAN_AGREE_LABEL -> main label for privacy policy
COM_ONEPAGE_ITALIAN_AGREE_LABEL_LINK -> NEW this is shown within the link, for now the defualt is " - privacy policy"
COM_ONEPAGE_ITALIAN_AGREE_DESC -> is shown as a separate paragraph under the checkbox label and link
COM_ONEPAGE_ITALIAN_AGREE_ERROR -> shown within a system modal when the checkbox is not checked (opc uses system modals - alert, as they are the fastest and render properly on all types of devices and browsers)

full content of the modified file can look like:

Code: Select all
<?php
/**
* Italian privacy checkbox support file
*
* @package One Page Checkout for VirtueMart
*
*/
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
?><!-- italian privacy checkbox -->
<div style="width: 100%;" class="opc_bottom_checkboxwrap">
<div  class="checkbox_5">
<script type="text/javascript">
op_userfields.push('italianagreed');
custom_rendering_fields.push('italianagreed');
var italagreeerr = "<?php echo OPCloader::slash(OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_ERROR')); ?>";
function validateItalian()
{
  d = document.getElementById('italianagreed_field');
  if (d != null)
  if (!d.checked)
  {
    alert(italagreeerr);
    return false;
  }
  return true;
}
addOpcTriggerer('callSubmitFunct', 'validateItalian');
</script>

<input value="1" type="checkbox" id="italianagreed_field" name="italianagreed" <?php if (!empty($agree_checked)) echo ' checked="checked" '; ?> class="terms-of-service required"  required="required" autocomplete="off" />


</div>
               <div class="checkbox_95" ><label class="opc_bottom_labels" for="italianagreed_field"  ><span class="checkbox_label_opc"><?php echo OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL'); ?>
               
               <?php
               if (!empty($privacy_link)) {
               JHTMLOPC::_('behavior.modal', 'a.opcmodalprivacy');
               ?>
               
               <a target="_blank" rel="{handler: 'iframe', size: {x: 500, y: 400}}" class="opcmodalprivacy"  href="<?php echo $privacy_link; ?>" onclick="javascript: return Onepage.op_openlink(this); "><?php echo JText::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL_LINK'); ?></a>
               <?php
               }
               ?>
               
               </span><br />
               <?php
               echo OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_DESC');
               ?>
               </label></div>
</div>   
<!-- END italian privacy checkbox -->


best regards, stan
admin
Site Admin
 
Posts: 2708
Joined: Wed Jan 06, 2010 11:43 pm

Re: GDPR privacy policy

Postby info@.....com » Tue May 08, 2018 11:50 am

Thank you Stan! Unfortunately, it's not working for me

This is what my italian checkbox file looks like (threecolumn_special_blue_css3_custom theme)

Code: Select all
<?php
/**
* Italian privacy checkbox support file
*
* @package One Page Checkout for VirtueMart 2
* @subpackage opc
* @author stAn
* @author RuposTel s.r.o.
* @copyright Copyright (C) 2007 - 2012 RuposTel - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* One Page checkout is free software released under GNU/GPL and uses some code from VirtueMart
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*
*/
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
?><!-- italian privacy checkbox -->
<div style="" class="fullwidth" id="italian_checkbox">
<div class="left_checkbox" style="">
<script type="text/javascript">
op_userfields.push('italianagreed');
custom_rendering_fields.push('italianagreed');
var italagreeerr = "<?php echo OPCloader::slash(JText::_('COM_ONEPAGE_ITALIAN_AGREE_ERROR')); ?>";
function validateItalian()
{
  d = document.getElementById('italianagreed_field');
  if (d != null)
  if (!d.checked)
  {
    alert(italagreeerr);
    return false;
  }
  return true;
}
addOpcTriggerer('callSubmitFunct', 'validateItalian');
</script>
<input value="1" type="checkbox" id="italianagreed_field" name="italianagreed" <?php if (!empty($agree_checked)) echo ' checked="checked" '; ?> class="terms-of-service required"  required="required" autocomplete="off" />
<?php
               if (!empty($privacy_link)) {
               JHTMLOPC::_('behavior.modal', 'a.opcmodalprivacy');
               ?>
               
               <a target="_blank" rel="{handler: 'iframe', size: {x: 500, y: 400}}" class="opcmodalprivacy"  href="<?php echo $privacy_link; ?>" onclick="javascript: return Onepage.op_openlink(this); "><?php echo JText::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL_LINK'); ?></a>
               <?php
               }
               ?>


</div>
               <div class="right_label"><label for="italianagreed_field" style="float: none; white-space: normal;"><span style="font-weight:bold;"><?php echo OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL').'</span><br />';
               echo OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_DESC');
               ?>
               </label></div>
</div>

   
<!-- END italian privacy checkbox -->
info@.....com
 
Posts: 22
Joined: Wed Oct 11, 2017 1:36 pm

Re: GDPR privacy policy

Postby admin » Tue May 15, 2018 1:39 pm

hello, for three coloumn css3 theme i adjusted it to:

Code: Select all
<?php
/**
* Italian privacy checkbox support file
*
* @package One Page Checkout for VirtueMart 2
* @subpackage opc
* @author stAn
* @author RuposTel s.r.o.
* @copyright Copyright (C) 2007 - 2012 RuposTel - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* One Page checkout is free software released under GNU/GPL and uses some code from VirtueMart
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*
*/
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
?><!-- italian privacy checkbox -->
<div style="" class="fullwidth" id="italian_checkbox">
<div class="left_checkbox" style="">
<script>
op_userfields.push('italianagreed');
custom_rendering_fields.push('italianagreed');
var italagreeerr = "<?php echo OPCloader::slash(JText::_('COM_ONEPAGE_ITALIAN_AGREE_ERROR')); ?>";
function validateItalian()
{
  d = document.getElementById('italianagreed_field');
  if (d != null)
  if (!d.checked)
  {
    alert(italagreeerr);
    return false;
  }
  return true;
}
addOpcTriggerer('callSubmitFunct', 'validateItalian');
</script>
<input value="1" type="checkbox" id="italianagreed_field" name="italianagreed" <?php if (!empty($agree_checked)) echo ' checked="checked" '; ?> class="terms-of-service required"  required="required" autocomplete="off" />

</div>
               <div class="right_label"><label for="italianagreed_field" style="float: none; white-space: normal;"><span style="font-weight:bold;"><?php echo OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL'); ?></span>
                <?php
               if (!empty($privacy_link)) {
               JHTMLOPC::_('behavior.modal', 'a.opcmodalprivacy');
               ?>
               
               <a target="_blank" rel="{handler: 'iframe', size: {x: 500, y: 400}}" class="opcmodalprivacy"  href="<?php echo $privacy_link; ?>" onclick="javascript: return Onepage.op_openlink(this); "><?php echo JText::_('COM_ONEPAGE_ITALIAN_AGREE_LABEL_LINK'); ?></a>
               <?php
               }
               ?>
               <br /><?php
               echo OPCLang::_('COM_ONEPAGE_ITALIAN_AGREE_DESC');
               ?>
               </label></div>
</div>   
<!-- END italian privacy checkbox -->



let me know if all is OK.

best regards, stan
admin
Site Admin
 
Posts: 2708
Joined: Wed Jan 06, 2010 11:43 pm

Re: GDPR privacy policy

Postby info@.....com » Thu May 17, 2018 10:25 am

Hi Stan,

Thanks a lot, It works, the privacy policy link is displayed, but once the customer logs in it dissapears. The customer should have to accept privacy policy even if it's a returning customer, same as TOS.

Also, I'd need it to behave exactly the same way as TOS link. Right now, clicking privacy policy link does not open a pop up with the article. It opens the article itself in the same page, and takes the customer out of checkout.

Can you help, please? thanks again
info@.....com
 
Posts: 22
Joined: Wed Oct 11, 2017 1:36 pm

Next

Return to One Page Checkout for Virtuemart 3 on Joomla 3.x

cron