Как реализовать функцию подписки/отписки в BuddyPress с помощью AJAX

Чтобы создать функцию подписки/отписки в BuddyPress с помощью вызова AJAX, вы можете выполнить следующие действия:

Шаг 1. Добавьте в очередь файл JavaScript
Во-первых, вам необходимо поставить в очередь файл JavaScript, содержащий функциональность AJAX. Вы можете добавить следующий код в файл functions.phpвашей темы или в собственный плагин:

function enqueue_follow_unfollow_script() {
   wp_enqueue_script( 'follow-unfollow-script', get_template_directory_uri() . '/js/follow-unfollow-script.js', array( 'jquery' ), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'enqueue_follow_unfollow_script' );

Обязательно замените get_template_directory_uri(). '/js/follow-unfollow-script.js', указав правильный путь к вашему файлу JavaScript.

Шаг 2. Создайте функции обратного вызова AJAX
Далее вам необходимо создать функции обратного вызова AJAX в вашем PHP-файле. Вот пример:

function follow_user() {
   $user_id = $_POST['user_id'];
   // Code to follow the user goes here
   wp_die();
}
add_action( 'wp_ajax_follow_user', 'follow_user' );
add_action( 'wp_ajax_nopriv_follow_user', 'follow_user' );
function unfollow_user() {
   $user_id = $_POST['user_id'];
   // Code to unfollow the user goes here
   wp_die();
}
add_action( 'wp_ajax_unfollow_user', 'unfollow_user' );
add_action( 'wp_ajax_nopriv_unfollow_user', 'unfollow_user' );

Шаг 3. Напишите код JavaScript
В файле JavaScript (follow-unfollow-script.js) вы можете написать код AJAX для отправки запроса на подписку/отмену подписки. Вот пример использования jQuery:

jQuery(document).ready(function($) {
   // Follow user
   $('.follow-button').on('click', function() {
      var user_id = $(this).data('user-id');
      $.ajax({
         url: ajaxurl,
         type: 'POST',
         data: {
            action: 'follow_user',
            user_id: user_id
         },
         success: function(response) {
            // Handle success response
            console.log('User followed successfully');
         },
         error: function(error) {
            // Handle error response
            console.log('Error following user');
         }
      });
   });
   // Unfollow user
   $('.unfollow-button').on('click', function() {
      var user_id = $(this).data('user-id');
      $.ajax({
         url: ajaxurl,
         type: 'POST',
         data: {
            action: 'unfollow_user',
            user_id: user_id
         },
         success: function(response) {
            // Handle success response
            console.log('User unfollowed successfully');
         },
         error: function(error) {
            // Handle error response
            console.log('Error unfollowing user');
         }
      });
   });
});

Шаг 4. HTML-разметка
Наконец, вам нужно добавить соответствующую HTML-разметку для кнопок подписки/отмены подписки:

<!-- Follow button -->
<button class="follow-button" data-user-id="123">Follow</button>
<!-- Unfollow button -->
<button class="unfollow-button" data-user-id="123">Unfollow</button>

Замените data-user-idидентификатором пользователя, на которого вы хотите подписаться/отписаться.

Вот и все! С помощью этих шагов вы сможете создать функцию подписки/отписки в BuddyPress с помощью вызовов AJAX.