Для выполнения PHP скрипта через админ-панель после клика на кнопке, вы можете добавить пользовательскую страницу или настройку в админ панель вашей CMS (например, Wordpress) и использовать AJAX для вызова PHP скрипта без перезагрузки страницы.
Пример решения в Wordpress (это наиболее популярная CMS, поэтому я буду использовать её в качестве примера):
1. **Создание страницы настроек в админ-панели**
Добавьте новую страницу настроек в функции `functions.php` вашей темы или в плагине, используя функцию `add_menu_page()` или `add_submenu_page()`.
2. **Добавление кнопки**
В HTML коде вашей страницы настроек добавьте кнопку, по клику на которую будет выполняться запрос.
```html
<button id="my-button">Выполнить</button>
```
3. **Добавление обработчика клика на стороне клиента**
Вставьте JavaScript или jQuery код, который будет слушать клик по кнопке и делать AJAX запрос.
```javascript
jQuery(document).ready(function($) {
$('#my-button').click(function() {
$.ajax({
url: ajaxurl, // Это глобальная переменная в Wordpress для AJAX запросов
type: 'POST',
data: {
action: 'my_custom_action', // Метка действия для хука в PHP
// другие параметры, если они нужны, например nonce для безопасности
},
success: function(response){
// Обработка ответа от сервера
alert('Обработчик выполнен! Полученные данные: ' + response);
}
});
});
});
```
4. **Регистрация обработчика AJAX запросов в WordPress**
В `functions.php` вашей темы или плагина, добавьте хук для обработки AJAX запроса.
```php
add_action( 'wp_ajax_my_custom_action', 'my_custom_action_callback' );
function my_custom_action_callback() {
// Проверка nonce для безопасности
// Ваш PHP код, который делает запрос к API и обрабатывает данные
// ...
echo 'Результат выполнения скрипта'; // Это будет отправлено обратно в JS как ответ
wp_die(); // Заканчиваем выполнение, возвращаем результат
}
```
5. **Локализация скрипта**
С использованием `wp_localize_script()`, убедитесь, что скрипт правильно подключен к странице настроек и имеет доступ к `ajaxurl`.
```php
wp_enqueue_script( 'my-custom-js', 'path-to-my-js-file.js', array('jquery'), '', true );
wp_localize_script( 'my-custom-js', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
```
Если вы не используете Wordpress, процесс будет аналогичен, но детали реализации будут зависеть от используемой вами системы управления контентом или фреймворка.
Не забудьте проверять безопасность ваших AJAX запросов, используя токены/нонсы и правильно проверяя права пользователей, которые имеют возможность выполнять этот запрос.