[ Index ]

PHP Cross Reference of BBPress

title

Body

[close]

/src/includes/admin/ -> tools.php (source)

   1  <?php
   2  
   3  /**
   4   * bbPress Admin Tools Page
   5   *
   6   * @package bbPress
   7   * @subpackage Administration
   8   */
   9  
  10  // Exit if accessed directly
  11  defined( 'ABSPATH' ) || exit;
  12  
  13  /**
  14   * Output a bbPress specific tools box
  15   *
  16   * @since 2.6.0 bbPress (r6273)
  17   */
  18  function bbp_admin_tools_box() {
  19  
  20      // Bail if user cannot access tools page
  21      if ( ! current_user_can( 'bbp_tools_page' ) ) {
  22          return;
  23      }
  24  
  25      // Get the tools pages
  26      $links = array();
  27      $tools = bbp_get_tools_admin_pages(); ?>
  28  
  29      <div class="card">
  30          <h3 class="title"><?php esc_html_e( 'Forums', 'bbpress' ); ?></h3>
  31          <p><?php esc_html_e( 'bbPress provides the following tools to help you manage your forums:', 'bbpress' ); ?></p>
  32  
  33          <?php
  34  
  35          // Loop through tools and create links
  36          foreach ( $tools as $tool ) {
  37  
  38              // Skip if user cannot see this page
  39              if ( ! current_user_can( $tool['cap'] ) ) {
  40                  continue;
  41              }
  42  
  43              // Add link to array
  44              $links[] = sprintf( '<a href="%s">%s</a>', esc_url( add_query_arg( array( 'page' => $tool['page'] ), admin_url( 'tools.php' ) ) ), $tool['name'] );
  45          }
  46  
  47          // Output links
  48          echo '<p class="bbp-tools-links">' . implode( ' &middot; ', $links ) . '</p>';
  49  
  50      ?></div>
  51  
  52  <?php
  53  }
  54  
  55  /**
  56   * Register an admin area repair tool
  57   *
  58   * @since 2.6.0 bbPress (r5885)
  59   *
  60   * @param array $args
  61   * @return
  62   */
  63  function bbp_register_repair_tool( $args = array() ) {
  64  
  65      // Parse arguments
  66      $r = bbp_parse_args( $args, array(
  67          'id'          => '',
  68          'type'        => '',
  69          'title'       => '',
  70          'description' => '',
  71          'callback'    => '',
  72          'priority'    => 0,
  73          'overhead'    => 'low',
  74          'version'     => '',
  75          'components'  => array(),
  76  
  77          // @todo
  78          'success'     => esc_html__( 'The repair was completed successfully', 'bbpress' ),
  79          'failure'     => esc_html__( 'The repair was not successful',         'bbpress' )
  80      ), 'register_repair_tool' );
  81  
  82      // Bail if missing required values
  83      if ( empty( $r['id'] ) || empty( $r['priority'] ) || empty( $r['title'] ) || empty( $r['callback'] ) ) {
  84          return;
  85      }
  86  
  87      // Add tool to the registered tools array
  88      bbp_admin()->tools[ $r['id'] ] = array(
  89          'type'        => $r['type'],
  90          'title'       => $r['title'],
  91          'description' => $r['description'],
  92          'priority'    => $r['priority'],
  93          'callback'    => $r['callback'],
  94          'overhead'    => $r['overhead'],
  95          'components'  => $r['components'],
  96          'version'     => $r['version'],
  97  
  98          // @todo
  99          'success'     => $r['success'],
 100          'failure'     => $r['failure'],
 101      );
 102  }
 103  
 104  /**
 105   * Register the default repair tools
 106   *
 107   * @since 2.6.0 bbPress (r5885)
 108   */
 109  function bbp_register_default_repair_tools() {
 110  
 111      // Topic meta
 112      bbp_register_repair_tool( array(
 113          'id'          => 'bbp-sync-topic-meta',
 114          'type'        => 'repair',
 115          'title'       => esc_html__( 'Recalculate parent topic for each reply', 'bbpress' ),
 116          'description' => esc_html__( 'Run this if replies appear in the wrong topics.', 'bbpress' ),
 117          'callback'    => 'bbp_admin_repair_topic_meta',
 118          'priority'    => 5,
 119          'overhead'    => 'low',
 120          'components'  => array( bbp_get_reply_post_type() )
 121      ) );
 122  
 123      // Forum meta
 124      bbp_register_repair_tool( array(
 125          'id'          => 'bbp-sync-forum-meta',
 126          'type'        => 'repair',
 127          'title'       => esc_html__( 'Recalculate parent forum for each topic and reply', 'bbpress' ),
 128          'description' => esc_html__( 'Run this if topics or replies appear in the wrong forums.', 'bbpress' ),
 129          'callback'    => 'bbp_admin_repair_forum_meta',
 130          'priority'    => 10,
 131          'overhead'    => 'low',
 132          'components'  => array( bbp_get_topic_post_type(), bbp_get_reply_post_type() )
 133      ) );
 134  
 135      // Forum visibility
 136      bbp_register_repair_tool( array(
 137          'id'          => 'bbp-sync-forum-visibility',
 138          'type'        => 'repair',
 139          'title'       => esc_html__( 'Recalculate private and hidden forums', 'bbpress' ),
 140          'description' => esc_html__( 'Run this if non-public forums are publicly visible.', 'bbpress' ),
 141          'callback'    => 'bbp_admin_repair_forum_visibility',
 142          'priority'    => 15,
 143          'overhead'    => 'low',
 144          'components'  => array( bbp_get_forum_post_type() )
 145      ) );
 146  
 147      // Sync all topics in all forums
 148      bbp_register_repair_tool( array(
 149          'id'          => 'bbp-sync-all-topics-forums',
 150          'type'        => 'repair',
 151          'title'       => esc_html__( 'Recalculate last activity in each topic and forum', 'bbpress' ),
 152          'description' => esc_html__( 'Run this if freshness appears incorrectly.', 'bbpress' ),
 153          'callback'    => 'bbp_admin_repair_freshness',
 154          'priority'    => 20,
 155          'overhead'    => 'high',
 156          'components'  => array( bbp_get_forum_post_type(), bbp_get_topic_post_type(), bbp_get_reply_post_type() )
 157      ) );
 158  
 159      // Sync all sticky topics in all forums
 160      bbp_register_repair_tool( array(
 161          'id'          => 'bbp-sync-all-topics-sticky',
 162          'type'        => 'repair',
 163          'title'       => esc_html__( 'Recalculate sticky relationship of each topic', 'bbpress' ),
 164          'description' => esc_html__( 'Run this if sticky topics appear incorrectly.', 'bbpress' ),
 165          'callback'    => 'bbp_admin_repair_sticky',
 166          'priority'    => 25,
 167          'overhead'    => 'low',
 168          'components'  => array( bbp_get_topic_post_type() )
 169      ) );
 170  
 171      // Sync all hierarchical reply positions
 172      bbp_register_repair_tool( array(
 173          'id'          => 'bbp-sync-all-reply-positions',
 174          'type'        => 'repair',
 175          'title'       => esc_html__( 'Recalculate position of each reply in each topic', 'bbpress' ),
 176          'description' => esc_html__( 'Run this if replies appear in the wrong order.', 'bbpress' ),
 177          'callback'    => 'bbp_admin_repair_reply_menu_order',
 178          'priority'    => 30,
 179          'overhead'    => 'high',
 180          'components'  => array( bbp_get_reply_post_type() )
 181      ) );
 182  
 183      // Sync all topic engagements for all users
 184      bbp_register_repair_tool( array(
 185          'id'          => 'bbp-topic-engagements',
 186          'type'        => 'repair',
 187          'title'       => esc_html__( 'Recalculate engagements in each topic for each user', 'bbpress' ),
 188          'description' => esc_html__( 'Run this if voices appear incorrectly.', 'bbpress' ),
 189          'callback'    => 'bbp_admin_repair_topic_voice_count',
 190          'priority'    => 35,
 191          'overhead'    => 'high',
 192          'components'  => array( bbp_get_topic_post_type(), bbp_get_user_rewrite_id() )
 193      ) );
 194  
 195      // Update closed topic counts
 196      bbp_register_repair_tool( array(
 197          'id'          => 'bbp-sync-closed-topics',
 198          'type'        => 'repair',
 199          'title'       => esc_html__( 'Repair closed topic statuses', 'bbpress' ),
 200          'description' => esc_html__( 'Run this if closed topics appear incorrectly.', 'bbpress' ),
 201          'callback'    => 'bbp_admin_repair_closed_topics',
 202          'priority'    => 40,
 203          'overhead'    => 'medium',
 204          'components'  => array( bbp_get_topic_post_type() )
 205      ) );
 206  
 207      // Count topics
 208      bbp_register_repair_tool( array(
 209          'id'          => 'bbp-forum-topics',
 210          'type'        => 'repair',
 211          'title'       => esc_html__( 'Recount topics in each forum', 'bbpress' ),
 212          'description' => esc_html__( 'Run this if the number of topics in any forums are incorrect.', 'bbpress' ),
 213          'callback'    => 'bbp_admin_repair_forum_topic_count',
 214          'priority'    => 45,
 215          'overhead'    => 'medium',
 216          'components'  => array( bbp_get_forum_post_type(), bbp_get_topic_post_type() )
 217      ) );
 218  
 219      // Count topic tags
 220      bbp_register_repair_tool( array(
 221          'id'          => 'bbp-topic-tags',
 222          'type'        => 'repair',
 223          'title'       => esc_html__( 'Recount topics in each topic-tag', 'bbpress' ),
 224          'description' => esc_html__( 'Run this if the number of topics in any topic-tags are incorrect.', 'bbpress' ),
 225          'callback'    => 'bbp_admin_repair_topic_tag_count',
 226          'priority'    => 50,
 227          'overhead'    => 'medium',
 228          'components'  => array( bbp_get_topic_post_type(), bbp_get_topic_tag_tax_id() )
 229      ) );
 230  
 231      // Count forum replies
 232      bbp_register_repair_tool( array(
 233          'id'          => 'bbp-forum-replies',
 234          'type'        => 'repair',
 235          'title'       => esc_html__( 'Recount replies in each forum', 'bbpress' ),
 236          'description' => esc_html__( 'Run this if the number of replies in any forums are incorrect.', 'bbpress' ),
 237          'callback'    => 'bbp_admin_repair_forum_reply_count',
 238          'priority'    => 55,
 239          'overhead'    => 'high',
 240          'components'  => array( bbp_get_forum_post_type(), bbp_get_reply_post_type() )
 241      ) );
 242  
 243      // Count non-published replies to each forum
 244      bbp_register_repair_tool( array(
 245          'id'          => 'bbp-forum-hidden-replies',
 246          'type'        => 'repair',
 247          'title'       => esc_html__( 'Recount pending, spammed, and trashed replies in each forum', 'bbpress' ),
 248          'description' => esc_html__( 'Run this if non-public replies display incorrectly in forums.', 'bbpress' ),
 249          'callback'    => 'bbp_admin_repair_forum_hidden_reply_count',
 250          'priority'    => 60,
 251          'overhead'    => 'high',
 252          'components'  => array( bbp_get_forum_post_type(), bbp_get_reply_post_type() )
 253      ) );
 254  
 255      // Count topic replies
 256      bbp_register_repair_tool( array(
 257          'id'          => 'bbp-topic-replies',
 258          'type'        => 'repair',
 259          'title'       => esc_html__( 'Recount replies in each topic', 'bbpress' ),
 260          'description' => esc_html__( 'Run this if the number of replies in any topics are incorrect.', 'bbpress' ),
 261          'callback'    => 'bbp_admin_repair_topic_reply_count',
 262          'priority'    => 65,
 263          'overhead'    => 'high',
 264          'components'  => array( bbp_get_topic_post_type(), bbp_get_reply_post_type() )
 265      ) );
 266  
 267      // Count non-published replies to each topic
 268      bbp_register_repair_tool( array(
 269          'id'          => 'bbp-topic-hidden-replies',
 270          'type'        => 'repair',
 271          'title'       => esc_html__( 'Recount pending, spammed, and trashed replies in each topic', 'bbpress' ),
 272          'description' => esc_html__( 'Run this if non-public replies display incorrectly in topics.', 'bbpress' ),
 273          'callback'    => 'bbp_admin_repair_topic_hidden_reply_count',
 274          'priority'    => 70,
 275          'overhead'    => 'high',
 276          'components'  => array( bbp_get_topic_post_type(), bbp_get_reply_post_type() )
 277      ) );
 278  
 279      // Recount topics for each user
 280      bbp_register_repair_tool( array(
 281          'id'          => 'bbp-user-topics',
 282          'type'        => 'repair',
 283          'title'       => esc_html__( 'Recount topics for each user', 'bbpress' ),
 284          'description' => esc_html__( 'Run this to get fresh topic counts for all users.', 'bbpress' ),
 285          'callback'    => 'bbp_admin_repair_user_topic_count',
 286          'priority'    => 75,
 287          'overhead'    => 'medium',
 288          'components'  => array( bbp_get_topic_post_type(), bbp_get_user_rewrite_id() )
 289      ) );
 290  
 291      // Recount topics for each user
 292      bbp_register_repair_tool( array(
 293          'id'          => 'bbp-user-replies',
 294          'type'        => 'repair',
 295          'title'       => esc_html__( 'Recount replies for each user', 'bbpress' ),
 296          'description' => esc_html__( 'Run this to get fresh reply counts for all users.', 'bbpress' ),
 297          'callback'    => 'bbp_admin_repair_user_reply_count',
 298          'priority'    => 80,
 299          'overhead'    => 'medium',
 300          'components'  => array( bbp_get_reply_post_type(), bbp_get_user_rewrite_id() )
 301      ) );
 302  
 303      // Remove unpublished topics from user favorites
 304      bbp_register_repair_tool( array(
 305          'id'          => 'bbp-user-favorites',
 306          'type'        => 'repair',
 307          'title'       => esc_html__( 'Remove unpublished topics from user favorites', 'bbpress' ),
 308          'description' => esc_html__( 'Run this to remove trashed or deleted topics from all user favorites.', 'bbpress' ),
 309          'callback'    => 'bbp_admin_repair_user_favorites',
 310          'priority'    => 85,
 311          'overhead'    => 'medium',
 312          'components'  => array( bbp_get_topic_post_type(), bbp_get_user_rewrite_id() )
 313      ) );
 314  
 315      // Remove unpublished topics from user subscriptions
 316      bbp_register_repair_tool( array(
 317          'id'          => 'bbp-user-topic-subscriptions',
 318          'type'        => 'repair',
 319          'title'       => esc_html__( 'Remove unpublished topics from user subscriptions', 'bbpress' ),
 320          'description' => esc_html__( 'Run this to remove trashed or deleted topics from all user subscriptions.', 'bbpress' ),
 321          'callback'    => 'bbp_admin_repair_user_topic_subscriptions',
 322          'priority'    => 90,
 323          'overhead'    => 'medium',
 324          'components'  => array( bbp_get_topic_post_type(), bbp_get_user_rewrite_id() )
 325      ) );
 326  
 327      // Remove unpublished forums from user subscriptions
 328      bbp_register_repair_tool( array(
 329          'id'          => 'bbp-user-forum-subscriptions',
 330          'type'        => 'repair',
 331          'title'       => esc_html__( 'Remove unpublished forums from user subscriptions', 'bbpress' ),
 332          'description' => esc_html__( 'Run this to remove trashed or deleted forums from all user subscriptions.', 'bbpress' ),
 333          'callback'    => 'bbp_admin_repair_user_forum_subscriptions',
 334          'priority'    => 95,
 335          'overhead'    => 'medium',
 336          'components'  => array( bbp_get_forum_post_type(), bbp_get_user_rewrite_id() )
 337      ) );
 338  
 339      // Remove unpublished forums from user subscriptions
 340      bbp_register_repair_tool( array(
 341          'id'          => 'bbp-user-role-map',
 342          'type'        => 'repair',
 343          'title'       => esc_html__( 'Remap all users to default forum roles', 'bbpress' ),
 344          'description' => esc_html__( 'Run this if users have issues accessing the forums.', 'bbpress' ),
 345          'callback'    => 'bbp_admin_repair_user_roles',
 346          'priority'    => 100,
 347          'overhead'    => 'low',
 348          'components'  => array( bbp_get_user_rewrite_id() )
 349      ) );
 350  
 351      // Migrate topic engagements to post-meta
 352      bbp_register_repair_tool( array(
 353          'id'          => 'bbp-user-topic-engagements-move',
 354          'type'        => 'upgrade',
 355          'title'       => esc_html__( 'Upgrade user topic engagements', 'bbpress' ),
 356          'description' => esc_html__( 'Copies engagements from user meta to topic meta.', 'bbpress' ),
 357          'callback'    => 'bbp_admin_upgrade_user_engagements',
 358          'priority'    => 105,
 359          'version'     => '2.6.0',
 360          'overhead'    => 'high',
 361          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_engagements_rewrite_id() )
 362      ) );
 363  
 364      // Migrate favorites from user-meta to post-meta
 365      bbp_register_repair_tool( array(
 366          'id'          => 'bbp-user-favorites-move',
 367          'type'        => 'upgrade',
 368          'title'       => esc_html__( 'Upgrade user topic favorites', 'bbpress' ),
 369          'description' => esc_html__( 'Copies favorites from user meta to topic meta.', 'bbpress' ),
 370          'callback'    => 'bbp_admin_upgrade_user_favorites',
 371          'priority'    => 110,
 372          'version'     => '2.6.0',
 373          'overhead'    => 'high',
 374          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_favorites_rewrite_id() )
 375      ) );
 376  
 377      // Migrate topic subscriptions from user-meta to post-meta
 378      bbp_register_repair_tool( array(
 379          'id'          => 'bbp-user-topic-subscriptions-move',
 380          'type'        => 'upgrade',
 381          'title'       => esc_html__( 'Upgrade user topic subscriptions', 'bbpress' ),
 382          'description' => esc_html__( 'Copies topic subscriptions from user meta to topic meta.', 'bbpress' ),
 383          'callback'    => 'bbp_admin_upgrade_user_topic_subscriptions',
 384          'priority'    => 115,
 385          'version'     => '2.6.0',
 386          'overhead'    => 'high',
 387          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_subscriptions_rewrite_id() )
 388      ) );
 389  
 390      // Migrate forum subscriptions from user-meta to post-meta
 391      bbp_register_repair_tool( array(
 392          'id'          => 'bbp-user-forum-subscriptions-move',
 393          'type'        => 'upgrade',
 394          'title'       => esc_html__( 'Upgrade user forum subscriptions', 'bbpress' ),
 395          'description' => esc_html__( 'Copies forum subscriptions from user meta to forum meta.', 'bbpress' ),
 396          'callback'    => 'bbp_admin_upgrade_user_forum_subscriptions',
 397          'priority'    => 120,
 398          'version'     => '2.6.0',
 399          'overhead'    => 'high',
 400          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_subscriptions_rewrite_id() )
 401      ) );
 402  
 403      // Remove favorites from user-meta
 404      bbp_register_repair_tool( array(
 405          'id'          => 'bbp-user-favorites-delete',
 406          'type'        => 'upgrade',
 407          'title'       => esc_html__( 'Remove favorites from user-meta', 'bbpress' ),
 408          'description' => esc_html__( 'Run this to delete old data (after confirming successful favorites upgrade)', 'bbpress' ),
 409          'callback'    => 'bbp_admin_upgrade_remove_favorites_from_usermeta',
 410          'priority'    => 125,
 411          'version'     => '2.6.1',
 412          'overhead'    => 'medium',
 413          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_favorites_rewrite_id() )
 414      ) );
 415  
 416      // Remove topic subscriptions from user-meta
 417      bbp_register_repair_tool( array(
 418          'id'          => 'bbp-user-topic-subscriptions-delete',
 419          'type'        => 'upgrade',
 420          'title'       => esc_html__( 'Remove topic subscriptions from user-meta', 'bbpress' ),
 421          'description' => esc_html__( 'Run this to delete old data (after confirming successful topic subscriptions upgrade)', 'bbpress' ),
 422          'callback'    => 'bbp_admin_upgrade_remove_topic_subscriptions_from_usermeta',
 423          'priority'    => 130,
 424          'version'     => '2.6.1',
 425          'overhead'    => 'medium',
 426          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_subscriptions_rewrite_id() )
 427      ) );
 428  
 429      // Remove forum subscriptions from user-meta
 430      bbp_register_repair_tool( array(
 431          'id'          => 'bbp-user-forum-subscriptions-delete',
 432          'type'        => 'upgrade',
 433          'title'       => esc_html__( 'Remove forum subscriptions from user-meta', 'bbpress' ),
 434          'description' => esc_html__( 'Run this to delete old data (after confirming successful forum subscriptions upgrade)', 'bbpress' ),
 435          'callback'    => 'bbp_admin_upgrade_remove_forum_subscriptions_from_usermeta',
 436          'priority'    => 135,
 437          'version'     => '2.6.1',
 438          'overhead'    => 'medium',
 439          'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_subscriptions_rewrite_id() )
 440      ) );
 441  
 442      // Sync all BuddyPress group forum relationships
 443      bbp_register_repair_tool( array(
 444          'id'          => 'bbp-group-forums',
 445          'type'        => 'upgrade',
 446          'title'       => esc_html__( 'Upgrade BuddyPress Group Forum relationships', 'bbpress' ),
 447          'description' => esc_html__( 'Run this if you just upgraded BuddyPress Forums from Legacy.', 'bbpress' ),
 448          'callback'    => 'bbp_admin_upgrade_group_forum_relationship',
 449          'priority'    => 140,
 450          'version'     => esc_html__( 'Any', 'bbpress' ),
 451          'overhead'    => 'low',
 452          'components'  => array( bbp_get_forum_post_type() )
 453      ) );
 454  }
 455  
 456  /**
 457   * Output the tabs in the admin area
 458   *
 459   * @since 2.1.0 bbPress (r3872)
 460   *
 461   * @param string $active_tab Name of the tab that is active
 462   */
 463  function bbp_tools_admin_tabs( $active_tab = '' ) {
 464      echo bbp_get_tools_admin_tabs( $active_tab );
 465  }
 466  
 467      /**
 468       * Output the tabs in the admin area
 469       *
 470       * @since 2.1.0 bbPress (r3872)
 471       *
 472       * @param string $active_tab Name of the tab that is active
 473       */
 474  	function bbp_get_tools_admin_tabs( $active_tab = '' ) {
 475  
 476          // Declare local variables
 477          $tabs_html    = '';
 478          $idle_class   = 'nav-tab';
 479          $active_class = 'nav-tab nav-tab-active';
 480  
 481          // Setup core admin tabs
 482          $tabs = bbp_get_tools_admin_pages();
 483  
 484          // Loop through tabs and build navigation
 485          foreach ( $tabs as $tab ) {
 486  
 487              // Skip if user cannot visit page
 488              if ( ! current_user_can( $tab['cap'] ) ) {
 489                  continue;
 490              }
 491  
 492              // Setup tab HTML
 493              $is_current = (bool) ( $tab['page'] === $active_tab );
 494              $tab_class  = $is_current ? $active_class : $idle_class;
 495              $tab_url    = add_query_arg( array( 'page' => $tab['page'] ), admin_url( 'tools.php' ) );
 496  
 497              // Tab name is not escaped - may contain HTML
 498              $tabs_html .= '<a href="' . esc_url( $tab_url ) . '" class="' . esc_attr( $tab_class ) . '">' . $tab['name'] . '</a>';
 499          }
 500  
 501          // Output the tabs
 502          return $tabs_html;
 503      }
 504  
 505  /**
 506   * Return possible tools pages
 507   *
 508   * @since 2.6.0 bbPress (r6273)
 509   *
 510   * @return array
 511   */
 512  function bbp_get_tools_admin_pages() {
 513  
 514      // Get tools URL one time & use in each tab
 515      $tools_url = admin_url( 'tools.php' );
 516  
 517      // Filter & return
 518      return (array) apply_filters( 'bbp_tools_admin_tabs', array(
 519          array(
 520              'page' => 'bbp-repair',
 521              'func' => 'bbp_admin_repair_page',
 522              'cap'  => 'bbp_tools_repair_page',
 523              'name' => bbp_maybe_append_pending_upgrade_count( esc_html__( 'Repair Forums', 'bbpress' ), 'repair' ),
 524  
 525              // Deprecated 2.6.0
 526              'href' => add_query_arg( array( 'page' => 'bbp-repair' ), $tools_url )
 527          ),
 528          array(
 529              'page' => 'bbp-upgrade',
 530              'func' => 'bbp_admin_upgrade_page',
 531              'cap'  => 'bbp_tools_upgrade_page',
 532              'name' => bbp_maybe_append_pending_upgrade_count( esc_html__( 'Upgrade Forums', 'bbpress' ), 'upgrade' ),
 533  
 534              // Deprecated 2.6.0
 535              'href' => add_query_arg( array( 'page' => 'bbp-upgrade' ), $tools_url )
 536          ),
 537          array(
 538              'page' => 'bbp-converter',
 539              'func' => 'bbp_converter_settings_page',
 540              'cap'  => 'bbp_tools_import_page',
 541              'name' => esc_html__( 'Import Forums', 'bbpress' ),
 542  
 543              // Deprecated 2.6.0
 544              'href' => add_query_arg( array( 'page' => 'bbp-converter' ), $tools_url )
 545          ),
 546          array(
 547              'page' => 'bbp-reset',
 548              'func' => 'bbp_admin_reset_page',
 549              'cap'  => 'bbp_tools_reset_page',
 550              'name' => esc_html__( 'Reset Forums', 'bbpress' ),
 551  
 552              // Deprecated 2.6.0
 553              'href' => add_query_arg( array( 'page' => 'bbp-reset' ), $tools_url )
 554          )
 555      ) );
 556  }


Generated: Sun Dec 8 01:01:26 2019 Cross-referenced by PHPXref 0.7.1