Сейчас загружается

WordPress — ограничить пользователям возможность сохранения страницы в PDF через браузер

WordPress ограничить пользователям возможность сохранения страницы в PDF через браузер

Можно ограничить пользователям возможность сохранения страницы в PDF через браузер. Для этого есть несколько способов.

1. Запрет печати через CSS (основной метод)

Если пользователь попытается напечатать страницу в PDF, просто скрываем весь контент:

@media print {
    body {
        display: none;
    }
}

Как это работает?

  • При печати (Ctrl + P → «Печать в PDF») контент скрывается.
  • В итоге, PDF будет пустым.

Где вставить?
Добавь код в style.css или в head темы:

function disable_print_css() {
    echo '<style>@media print { body { display: none; } }</style>';
}
add_action('wp_head', 'disable_print_css');

2. Запрет нажатия Ctrl + P через JavaScript

Можно заблокировать сочетание клавиш Ctrl + P и кнопку печати:

function disable_print_js() {
    ?>
    <script>
        document.addEventListener("keydown", function(event) {
            if (event.ctrlKey && event.key === "p") {
                alert("Печать отключена на этом сайте!");
                event.preventDefault();
            }
        });
    </script>
    <?php
}
add_action('wp_footer', 'disable_print_js');

Что делает?

  • Блокирует Ctrl + P и Cmd + P (на Mac).
  • Показывает предупреждение.
  • Предотвращает стандартное поведение браузера.

3. Блокировка сохранения страницы через JavaScript

Запретить Ctrl + S и Cmd + S (Mac) для предотвращения сохранения страницы:

function disable_save_page() {
    ?>
    <script>
        document.addEventListener("keydown", function(event) {
            if (event.ctrlKey && (event.key === "s" || event.key === "S")) {
                alert("Сохранение страницы запрещено!");
                event.preventDefault();
            }
        });
    </script>
    <?php
}
add_action('wp_footer', 'disable_save_page');

Что делает?

  • Запрещает Ctrl + S (Windows) и Cmd + S (Mac).
  • Показывает предупреждение.

4. Отключение контекстного меню (ПКМ)

Если хочешь запретить копирование и печать, можно отключить правую кнопку мыши:

function disable_right_click() {
    ?>
    <script>
        document.addEventListener("contextmenu", function(event) {
            alert("Копирование запрещено!");
            event.preventDefault();
        });
    </script>
    <?php
}
add_action('wp_footer', 'disable_right_click');

4. Полный запрет через .htaccess (для Apache)

Если сайт на Apache, можно вообще запретить печать и сохранение через htaccess:

<IfModule mod_headers.c>
    Header set Content-Disposition "attachment; filename=restricted.html"
</IfModule>

Что делает?

  • Принудительно загружает HTML как файл, а не отображает в браузере.
  • Работает не во всех браузерах.
  • Работает не во всех браузерах.

Что в итоге?

Лучший вариант — комбинация CSS (display: none; при печати) + блокировка Ctrl + P через JS.
Если нужен максимальный контроль, можно добавить .htaccess и запрет контекстного меню.