Вопрос или проблема
Я использую атрибуты данных, чтобы передать формулу расчета цены продукта в JavaScript. Возможно ли передать это в JavaScript, не отображая в исходном коде страницы?
Ответ или решение
Передача данных WordPress в JavaScript может быть важной задачей при разработке динамических веб-приложений. В вашем случае, вы хотите передать формулу расчета цены продукта без отображения ее в исходном коде страницы. Это вызов, но есть несколько способов, которыми вы можете воспользоваться, чтобы добиться этого.
1. Использование REST API
Одним из наиболее эффективных способов передачи данных из WordPress в JavaScript является использование REST API WordPress. С его помощью вы можете создать конечную точку (endpoint), которая будет возвращать необходимые данные в формате JSON.
Пример реализации:
-
Создайте кастомный endpoint:
В вашем файлеfunctions.php
добавьте следующий код:add_action('rest_api_init', function () { register_rest_route('custom/v1', '/price_formula', array( 'methods' => 'GET', 'callback' => 'get_price_formula', )); }); function get_price_formula() { return new WP_REST_Response('ваша формула', 200); }
-
Получите данные на стороне клиента с помощью JavaScript:
В вашем JavaScript-коде вы можете использовать fetch API для получения данных.fetch(`${window.location.origin}/wp-json/custom/v1/price_formula`) .then(response => response.text()) .then(data => { console.log(data); // Здесь у вас будет ваша формула });
Таким образом, вы можете получать данные на стороне клиента без их отображения в исходном коде страницы.
2. Скрытые поля или куки
Другим вариантом является использование скрытых полей или куков, чтобы хранить данные. Эти данные не будут видны в исходном коде страницы, если вы будете использовать их правильно.
Скрытые поля:
-
Вариант с формой:
Вы можете создать форму с скрытыми полями:echo '<input type="hidden" id="price_formula" value="ваша формула">';
-
Чтение значения в JavaScript:
var formula = document.getElementById('price_formula').value; console.log(formula); // Здесь у вас будет ваша формула
Куки:
Вы также можете сохранять формулу в куки и считывать ее на стороне клиента:
-
Установите куку с помощью PHP:
setcookie("price_formula", "ваша формула", time() + 3600, "/");
-
Чтение куки в JavaScript:
let formula = document.cookie.split('; ').find(row => row.startsWith('price_formula=')).split('=')[1]; console.log(formula); // Ваша формула
Заключение
Использование REST API – это наилучший метод для передачи данных, поскольку он обеспечивает большую гибкость и безопасность. Скрытые поля и куки могут быть подходящими вариантами, но они могут быть менее безопасными, поскольку некоторые данные могут быть доступны через инструменты для разработчиков.
Эти методы помогут вам передать расчетной формулы цены продукта в JavaScript, избегая ее отображения в исходном коде. Важно помнить о безопасности и конфиденциальности данных, особенно если вы работаете с чувствительными или ценными параметрами.