| | 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' ); |