From 538f1e9d2aed65177ca956e9ff6c3ca33376c6f8 Mon Sep 17 00:00:00 2001 From: Kavalar Date: Mon, 21 Sep 2026 15:20:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B8=20=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=D1=86=D0=B8=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D1=91=D1=82=D1=81=D1=8F=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=86=D0=B0=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=B8=D1=8F?= =?UTF-8?q?=20consent-to-scan;=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=B8=D1=8F=20=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BB=20=D0=B3=D0=B8=D0=BF=D0=B5=D1=80=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BA=D0=BE=D0=B9=20=D0=BD=D0=B0=20=D0=BD=D0=B5=D1=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/css/med-diag.css | 2 ++ med-diagnostics.php | 47 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/assets/css/med-diag.css b/assets/css/med-diag.css index 11bad43..5022511 100644 --- a/assets/css/med-diag.css +++ b/assets/css/med-diag.css @@ -123,6 +123,8 @@ .med-scan-section { display: none; margin-bottom: 15px; } .med-scan-desc { color: #666; font-size: 14px; margin-bottom: 15px; } .med-scan-consent { color: #888; font-size: 12px; line-height: 1.5; margin-top: 12px; text-align: center; } +.med-scan-consent a { color: #888; text-decoration: underline; } +.med-scan-consent a:hover { color: #667eea; } .med-scan-btn { width: 100%; diff --git a/med-diagnostics.php b/med-diagnostics.php index c6eee08..def0002 100644 --- a/med-diagnostics.php +++ b/med-diagnostics.php @@ -58,6 +58,51 @@ function med_diag_max_upload_bytes() { return 100 * 1024 * 1024; } +/* ─── Страница согласия на сканирование ───────────────────── */ + +// Слаг страницы с текстом согласия (только латиница). +define( 'MED_DIAG_CONSENT_SLUG', 'consent-to-scan' ); + +/** + * Содержимое страницы согласия (из официального текста). + */ +function med_diag_consent_content() { + return '

СОГЛАСИЕ НА СКАНИРОВАНИЕ

+

Нажимая кнопку «Начать измерение» на устройстве «Фотоплетизмографическое сканирование здоровья «Спектр»» (далее – «Устройство»), я, дееспособный гражданин Российской Федерации, даю ООО «МЦДЦ» (адрес: 121205, город Москва, тер Инновационного Центра Сколково, Большой б-р, д. 30 стр. 1, эт. 1 помещ. 247, ОГРН 1217700384857, ИНН 9731082407) согласие на разовое сканирование моих физиологических показателей.

+

Я уведомлен о том, что данные, полученные в результате сканирования с помощью Устройства, используются исключительно для демонстрации результата сканирования на экране Устройства, не сохраняются и не используются для идентификации моей личности.

+

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

'; +} + +/** + * URL страницы согласия (создаётся при активации плагина). + */ +function med_diag_consent_url() { + $page = get_page_by_path( MED_DIAG_CONSENT_SLUG ); + if ( $page ) { + return get_permalink( $page ); + } + return home_url( '/' . MED_DIAG_CONSENT_SLUG ); +} + +/** + * При активации плагина создаём страницу согласия, если её ещё нет. + */ +register_activation_hook( __FILE__, 'med_diag_activate' ); + +function med_diag_activate() { + $existing = get_page_by_path( MED_DIAG_CONSENT_SLUG ); + if ( $existing ) { + return; + } + wp_insert_post( array( + 'post_type' => 'page', + 'post_status' => 'publish', + 'post_title' => 'Согласие на сканирование', + 'post_name' => MED_DIAG_CONSENT_SLUG, + 'post_content' => med_diag_consent_content(), + ) ); +} + /** * Ошибка в формате JSON: {"error": "..."} — как во Flask-бэкенде. * Фронтенд читает именно поле error (и video_url), а WP_Error отдаёт структуру @@ -261,7 +306,7 @@ function med_diag_shortcode( $atts ) {

📷 Сканирование

Наведите камеру на лицо — мы запишем видео и проведём анализ

- +