Как запустить PHP-скрипт через админ-панель после клика?

Как можно настроить админку для выполнения запроса к API из пользовательского поста в кастомном типе записи? Мне нужно, чтобы при нажатии кнопки пользовательского поста запускался PHP-обработчик, который затем создаст или обновит существующие записи на основе полученного JSON-объекта через API. Как я могу организовать такое взаимодействие?
  • 12 февраля 2024 г. 13:00
Ответы на вопрос 2
Для выполнения 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 запросов, используя токены/нонсы и правильно проверяя права пользователей, которые имеют возможность выполнять этот запрос.
Я бы использовал плагин, с личной админкой и кнопкой на панели меню: 
Похожие вопросы