| 477 | /** |
| 478 | * Filter the "Register" link from `wp_register()` as used in |
| 479 | * `sidebar.php` and the WP Core meta widget. |
| 480 | * |
| 481 | * @since 10.0.0 |
| 482 | * |
| 483 | * @param string $link The HTML code for the link to the Registration or Admin page. |
| 484 | */ |
| 485 | function bp_members_membership_requests_filter_sidebar_register_link( $link ) { |
| 486 | // $link should be an empty string when public registration is disabled. |
| 487 | if ( ! is_user_logged_in() && bp_get_membership_requests_required() && empty( $link ) ) { |
| 488 | // @TODO: How can we know what before and after tags should be? |
| 489 | $link = '<li><a href="' . esc_url( wp_registration_url() ) . '">' . __( 'Request Membership' ) . '</a><li>'; |
| 490 | } |
| 491 | return $link; |
| 492 | } |
| 493 | add_filter( 'register', 'bp_members_membership_requests_filter_sidebar_register_link' ); |
| 494 | |
| 495 | /** |
| 496 | * Add a Request Membership link to the WP Toolbar. |
| 497 | * Priority 21 should place it just after the "Log In" link. |
| 498 | * |
| 499 | * @since 10.0.0 |
| 500 | * |
| 501 | * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference |
| 502 | */ |
| 503 | function bp_members_membership_requests_add_toolbar_link( $wp_admin_bar ) { |
| 504 | if ( is_user_logged_in() || ! bp_get_membership_requests_required() ) { |
| 505 | return; |
| 506 | } |
| 507 | |
| 508 | $args = array( |
| 509 | 'id' => 'bp-request-membership', |
| 510 | 'title' => __( 'Request Membership' ), |
| 511 | 'href' => wp_registration_url(), |
| 512 | 'meta' => array( |
| 513 | 'class' => 'buddypress-request-membership', |
| 514 | 'title' => __( 'Request Membership' ) |
| 515 | ), |
| 516 | ); |
| 517 | $wp_admin_bar->add_node( $args ); |
| 518 | } |
| 519 | add_action( 'admin_bar_menu', 'bp_members_membership_requests_add_toolbar_link', 21 ); |
| 520 | |
| 521 | /** |
| 522 | * Add a Request Membership link to the WP Login form. |
| 523 | * This is not the ideal place, but WP Core doesn't offer a filer |
| 524 | * in the #nav paragraph where the "Register" link would appear. |
| 525 | * |
| 526 | * @since 10.0.0 |
| 527 | * |
| 528 | * @param string $link HTML link to the home URL of the current site. |
| 529 | */ |
| 530 | function bp_members_membership_requests_add_link_wp_login( $link ) { |
| 531 | if ( bp_get_membership_requests_required() ) { |
| 532 | return $link . ' | ' . '<a href="' . esc_url( wp_registration_url() ) . '">' . __( 'Request Membership' ) . '</a>'; |
| 533 | } |
| 534 | } |
| 535 | add_action( 'login_site_html_link', 'bp_members_membership_requests_add_link_wp_login' ); |