Кодирование контактных данных с помощью шорткода и хука для сторонних плагинов

 

Обратите внимание что для корректной работы этих хуков Анти-Спам плагин CleanTalk должен быть установлен и активирован.

В этой статье объясняется, как с помощью шорткодов и хуков CleanTalk кодировать и защищать контактные данные. Материал будет особенно полезен веб-разработчикам и владельцам сайтов, которые хотят скрыть конфиденциальную информацию (например, email-адреса или телефоны) от спам-ботов, оставив её доступной для реальных пользователей.

Эти методы работают даже в том случае, если основная опция "Кодировать контактные данные" отключена, а также работают для авторизованных пользователей.

 


Добавьте следующий код непосредственно в ваш контент с помощью визуального редактора.

[apbct_encode_data]любой текст для кодирования[/apbct_encode_data] 

Добавьте атрибут mode для настройки вывода (скройте закодированный текст под символом "*")

[apbct_encode_data mode="obfuscate"]любой текст для кодирования[/apbct_encode_data]

Добавьте атрибуты mode и replacing_text для настройки вывода (спрячьте закодированный текст под подсказкой)

[apbct_encode_data mode="replace" replacing_text="кликни-чтобы-декодировать"]любой текст для кодирования[/apbct_encode_data]

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

Важно: шорткод не работает внутри HTML-тегов.

 


Для разработчиков хук apbct_encode_data позволяет гибко кодировать любые данные прямо в исходном коде. Оберните любой текст, который вы хотите закодировать, с помощью этого хука следующим образом:

function encode_contact_data_example () {
    $encoded_text = apply_filters('apbct_encode_data', 'any text to encode');

    echo $encoded_text;
}
add_action( 'wp_footer', 'encode_contact_data_example');

Переменная $encoded_text будет содержать закодированную версию текста "любой текст для кодирования". Отобразите эту переменную на странице, и она станет доступной для пользователей по клику, оставаясь скрытой от ботов.

 

Результат можно увидеть здесь:

Result

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

 

 

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

 

Как работает хук

Хук использует серверную переменную REQUEST_URI, которая содержит всю часть адреса после домена и до начала GET-параметров. Например:

  • URL: https://website.me/hotel-rooms&test-get-param=1 → REQUEST_URI = hotel-rooms
  • URL: https://website.me/hotel-rooms/details/&test-get-param=1 → REQUEST_URI = hotel-rooms/details

При проверке исключений плагин сравнивает заданные вами правила с переменной REQUEST_URI. Если правило совпадает с частью этой строки, кодирование данных для данной страницы будет отключен.

  • Rule 'details' excludes https://website.me/hotel-rooms/details/&test-get-param=1.
  • Rule 'hotel-rooms/details' also excludes the same page, since it matches the URI.

 

Как использовать:

  • Откройте файл functions.php вашей темы.
  • Добавьте следующий код:
                                    
    add_filter('apbct_skip_email_encoder_on_uri_chunk_list', function($url_chunk_list) { $url_chunk_list = array( '^/$', // skip encoding on homepage (option 1) '__HOME__', // skip encoding on homepage (option 2) 'page_id=19', // skip encoding on https://website.me/?page_id=19 'hotel-rooms/details', // skip encoding on https://website.me/hotel-rooms/details/ 'details', // skip encoding on any URL containing "details" ); return $url_chunk_list; });

В данном случае все контактные данные останутся видимыми на этих страницах, в то время как все остальные страницы останутся защищенными.

  • Страница https://website.me/hotel-rooms будет исключена из проверки (правило: 'hotel-rooms')
  • Страница https://website.me/hotel-rooms/details/ так же будет исключена из проверки (правило: 'hotel-rooms/details' или 'details')

 

Важно:

Если вы добавите этот код в файл functions.php основной темы, он будет утерян после обновления темы, и исключения перестанут работать. Чтобы гарантировать сохранение кода, всегда используйте дочернюю тему.

 

  

Начиная с версии 6.52 плагина Анти-Спам от Cleantalk, появилась возможность изменить некоторые фразы в опции кодирования контактных данных. На данный момент вы можете изменить три фразы с помощью специальных хуков. Данные фразы отображаются в модальном окне во время процесса декодирования контактных данных:

  1. The magic is on the way!
  2. The complete one is ...
  3. Please wait a few seconds while we decode the contact data.

Хуки для редактирования:

  1. apbct__ee_wait_for_decoding_text
  2. apbct__ee_original_email_text
  3. apbct__ee_decoding_process_text

Чтобы отредактировать фразы, добавьте обработчики хуков в файл functions.php.

Пример:

add_filter('apbct__ee_wait_for_decoding_text', function ($_original_text) {
 return 'Other text for `wait for decoding`';
});
add_filter('apbct__ee_decoding_process_text', function ($_original_text) {
 return 'Other text for `decoding process`';
});
add_filter('apbct__ee_original_email_text', function ($_original_text) {
 return 'Other text for `original email`';
});

 

Измененные фразы показаны на скриншотах.

Отредактированные фразы в опции Email Encoder

Отредактированные фразы в опции Email Encoder

 

Was this information helpful?

Copied to clipboard