Удалить “Форум” на этапе создания группы BuddyPress

Вопрос или проблема

В WordPress у меня установлены BuddyPress и bbPress. bbPress создает интеграцию с BuddyPress, где вы можете добавлять форумы в группы BuddyPress.

Я хочу убрать шаг “Форум” из процесса создания группы BuddyPress, но оставить форумы группы активными. Я пробовал множество решений, но не могу найти фильтр, который можно было бы использовать.

Например, этот код:

add_filter( 'groups_create_group_steps', function ( $steps ) {
    unset( $steps['group-settings'] );
    return $steps;
} );

удаляет настройки группы из процесса создания группы.

Этот код:

function buddydev_remove_group_admin_settings() {

    if ( ! bp_is_group() ) {
        return;
    }

    bp_core_remove_subnav_item( groups_get_current_group()->slug . '_manage', 'group-settings', 'groups' );

    // повторно прикрепить функцию экрана, чтобы избежать 404.
    add_action( 'bp_screens', 'groups_screen_group_admin', 3 );
}

add_action( 'bp_template_redirect', 'buddydev_remove_group_admin_settings', 1 );

удаляет настройки группы из меню “Управление” группы.

Используя это:

function remove_unwanted_group_creation_steps() {
    global $bp;
    if ( isset( $bp->groups->group_creation_steps['forum'] ) ) {
        unset( $bp->groups->group_creation_steps['forum'] );
    }

}
add_action( 'bp_before_create_group_content_template', 'remove_unwanted_group_creation_steps', 9999 );

удаляет шаг, но оставляет активным URL /create/step/forum/, что нарушает установленное мной количество шагов.

Можете помочь?

Ответ или решение

Конечно! Чтобы удалить шаг "Форум" из процесса создания группы в BuddyPress, но при этом сохранить активными форумы группы, мы можем использовать фильтры и хуки, которые предоставляет BuddyPress.

Вот решение, которое поможет вам добиться желаемого результата:

  1. Удаление шага "Форум": Используйте следующий код, чтобы убрать шаг "Форум" из процесса создания группы:
function remove_forum_creation_step( $steps ) {
    if ( isset( $steps['forum'] ) ) {
        unset( $steps['forum'] );
    }
    return $steps;
}

add_filter( 'groups_create_group_steps', 'remove_forum_creation_step' );
  1. Перенаправление URL: Для того чтобы избежать проблемы с активным URL шага /create/step/forum/, мы можем добавить перенаправление, которое будет отправлять пользователей обратно на предыдущий шаг.
function redirect_forum_creation_step() {
    if ( bp_is_group_creation_step( 'forum' ) ) {
        wp_redirect( bp_get_group_creation_step_url( 'settings' ) ); // перенаправляем на шаг 'settings'
        exit();
    }
}

add_action( 'bp_template_redirect', 'redirect_forum_creation_step' );
  1. Поддержание функциональности форумов: Убедитесь, что форумы для групп по-прежнему активны. В зависимости от ваших настроек вы можете использовать встроенные функции BuddyPress и bbPress для работы с форумами.

С этим кодом вы сможете убрать шаг "Форум" и одновременно избежать проблем с перенаправлением, сохранив форумы для групп активными. Просто добавьте эти функции в файл вашей темы functions.php или в созданный вами плагин.

Если у вас возникнут какие-либо дополнительные вопросы или потребуется помощь в адаптации кода, пожалуйста, дайте знать!

Оцените материал
Добавить комментарий

Капча загружается...