Изображение взято на странице http://andrei-kovrin.livejournal.com/321304.html

Как привести сайт WooCommerce в соответствие с Федеральным законом № 152-ФЗ «О персональных данных»

Сегодня о 152-ФЗ «О персональных данных» не написал только ленивый. Но, как говорится, dura lex, sed lex (лат. Суров закон, но это закон!). Сайт в любом случае обязательно нужно приводить в соответствие с этим законом. И здесь многое решает платформа, на которой сделан ваш интернет-магазин или сайт. Если вам несказанно повезло не вляпаться по уши в какой-нибудь Битрикс, а вы использовали мировые решения e-Commerce, лидером среди которых является WooCommerce, то эта короткая статья для вас и для ваших программистов.

На самом деле программные функции, требуемые 152-ФЗ, в WooCommerce изначально есть, нужно их лишь задействовать. Но есть несколько маленьких деталей. Давайте рассмотрим подробнее.

Итак, вам потребуется выполнить несколько шагов:

  1. Создайте на сайте новую страницу, которую вы назовёте «Политика обработки персональных данных». Текст страницы может быть примерно таким или таким. В идеале вам нужно проконсультироваться с юристом.
  2. Обязательно сделайте ссылку на эту страницу из меню вашего сайта или разместите ее на всех страницах сайта.
  3. Далее, переходите в настройки WooCommerce и на закладке платежи выберите в пункте «условия и соглашения» свою страницу:

настройки WooCommerce

  1. Сохраните настройки.

Собственно, заказ уже настроен. Теперь его невозможно сделать, пока пользователь не примет условия политики обработки персональных данных.

Однако, у нас остался еще один момент — регистрация пользователя. При использовании WooCommerce регистрация в WordPress может быть (и должна быть) заменена страницей «Мой аккаунт». И пользователь регистрируется, уже используя персональные данные, например, E-mail. Давайте сделаем обязательными условия и там. Здесь нам на помощь приходят хуки WordPress (как же я люблю архитектуру WP / WC!) и нам нет необходимости вмешиваться в программный код WooCommerce.

  1. Открывайте файл functions.php своей темы и дописывайте туда следующий код:
// Форма регистрации
add_action( 'woocommerce_register_form', 'in_woocommerce_register_form' ); 
function in_woocommerce_register_form()
{ ?>	

		<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
			<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="terms" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms'] ) ), true ); ?> id="terms" /> <span><?php printf( __( 'I&rsquo;ve read and accept the <a href="%s" class="woocommerce-terms-and-conditions-link">terms &amp; conditions</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'terms' ) ) ); ?></span> <span class="required">*</span>
		</label>
		<input type="hidden" name="terms-field" value="1" />
	

<?php
}

Как можно увидеть, этот код навешивает на хук вывода формы регистрации свою функцию, которая опять же использует страницу из настроек WooCommerce:

принятие соглашения

  1. Теперь дописываем код проверки этого условия и вывода ошибки:
// Проверка согласия с условиями
add_action( 'woocommerce_process_registration_errors', 'in_woocommerce_process_registration_errors', 10, 4 );
function in_woocommerce_process_registration_errors( $errors, $username, $password, $email )
{
    if ( empty( $_POST['terms'] ) ) {
        throw new Exception( 'В соответствии с Федеральным законом РФ № 152-ФЗ "О персональных данных" Вы должны прочитать и принять соглашение об обработке Ваших персональных данных.' );
    }
    return $errors;
}

Собственно, всё! Вот что появится, если пользователь не отметит галочку:

Ошибка персональных данных

  1. Ну и совсем для пущей официальности и спокойствия, можно пойти к нотариусу и заверить страницы пользовательского соглашения, оформления заказа и регистрации, чтобы однозначно показать, что без принятия условий никакие персональные данные вами не сохраняются и не обрабатываются.

Надеюсь, этот простой рецепт вам поможет.

Комментариев: 8
    1. Не обязательно, если указать в политике, что персональные данные собираются исключительно для выполнения своих обязательств по договору в т.ч. публичной оферте по оказанию услуг или продажи товаров.
      См. https://habrahabr.ru/company/it-lex/blog/298308

  1. Касательно SEO: Нужно ли страницу «Политика обработки персональных данных» закрывать от индексации? Так как ее текст по большей части будет являться не уникальным, предполагаю что на множестве сайтов и вовсе одинаковый будет.

    Возможен ли такой вариант, что в дальнейшем, у поисков наличие этой страницы будет как являться фактором (например как сейчас является наличие страницы «о компании» или «о проекте»)?

    1. Не думаю, что ее следует закрывать от индексации. Именно потому, что ее наличие, скорее всего, станет одним из коммерческих факторов, если уже не стало.

  2. Здравствуйте. Не могли бы вы опубликовать пошаговую инструкцию реализации данной идеи? Для менее опытных пользователей. Очень хотелось бы попробовать реализовать ваш вариант, а то у меня по стандартной схеме mysql падает(

    1. Артем, так сама заметка и является пошаговой инструкцией!
      Вы уверены, что именно MySQL падает? А не просто ошибка в коде?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Back To Top