WordPress/wp-includes/blocks/loginout.php
youknowriad ebca9841e8 Block Editor: Update the WordPress Packages based on Gutenberg 11.9 RC1.
This brings the JS packages up to date and is the first step that will allow us 
to include the other block editor updates for WordPress 5.9:
FSE infrastrucutre, site editor and global styles.

Props noisysocks.
See #54337.

Built from https://develop.svn.wordpress.org/trunk@52042


git-svn-id: http://core.svn.wordpress.org/trunk@51634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-11-08 14:29:21 +00:00

52 lines
1.3 KiB
PHP

<?php
/**
* Server-side rendering of the `core/loginout` block.
*
* @package WordPress
*/
/**
* Renders the `core/loginout` block on server.
*
* @param array $attributes The block attributes.
*
* @return string Returns the login-out link or form.
*/
function render_block_core_loginout( $attributes ) {
// Build the redirect URL.
$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$classes = is_user_logged_in() ? 'logged-in' : 'logged-out';
$contents = wp_loginout(
isset( $attributes['redirectToCurrent'] ) && $attributes['redirectToCurrent'] ? $current_url : '',
false
);
// If logged-out and displayLoginAsForm is true, show the login form.
if ( ! is_user_logged_in() && ! empty( $attributes['displayLoginAsForm'] ) ) {
// Add a class.
$classes .= ' has-login-form';
// Get the form.
$contents = wp_login_form( array( 'echo' => false ) );
}
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
return '<div ' . $wrapper_attributes . '>' . $contents . '</div>';
}
/**
* Registers the `core/loginout` block on server.
*/
function register_block_core_loginout() {
register_block_type_from_metadata(
__DIR__ . '/loginout',
array(
'render_callback' => 'render_block_core_loginout',
)
);
}
add_action( 'init', 'register_block_core_loginout' );