[
'title' => [
'type' => 'string',
'default' => __( 'Login with Email', 'magic-login' ),
],
'description' => [
'type' => 'string',
'default' => __( 'Please enter your username or email address. You will receive an email message to log in.', 'magic-login' ),
],
'loginLabel' => [
'type' => 'string',
'default' => __( 'Username or Email Address', 'magic-login' ),
],
'buttonLabel' => [
'type' => 'string',
'default' => __( 'Send me the link', 'magic-login' ),
],
'redirectTo' => [
'type' => 'string',
],
'hideLoggedIn' => [
'type' => 'boolean',
'default' => true,
],
'hideFormAfterSubmit' => [
'type' => 'boolean',
'default' => true,
],
'cancelRedirection' => [
'type' => 'boolean',
'default' => false,
],
],
'editor_script' => 'magic-login-block-editor',
'editor_style' => 'magic-login-login-block',
'style' => 'magic-login-login-block',
'render_callback' => __NAMESPACE__ . '\\render_login_block',
]
);
}
/**
* Render Login Block
*
* @param array $args Block Attributes
*
* @return false|string|void
* @since 1.2
*/
function render_login_block( $args ) {
$settings = \MagicLogin\Utils\get_settings();
$add_redirection_field = empty( $settings['enable_login_redirection'] ) || empty( $settings['enforce_redirection_rules'] );
if ( $settings['enable_ajax'] ) {
wp_enqueue_script( 'magic-login-frontend', MAGIC_LOGIN_URL . 'dist/js/frontend.js', [ 'jquery' ], MAGIC_LOGIN_VERSION, true );
}
$form_action = apply_filters( 'magic_login_login_block_form_action', '' );
$class = 'magic-login-login-block';
if ( ! empty( $args['align'] ) ) {
$class .= ' align' . $args['align'];
}
if ( ! empty( $args['className'] ) ) {
$class .= ' ' . esc_attr( $args['className'] );
}
if ( empty( $args['redirectTo'] ) ) {
$args['redirectTo'] = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // phpcs:ignore
}
if ( ! defined( 'REST_REQUEST' ) && ! is_admin() && is_user_logged_in() && $args['hideLoggedIn'] ) { // already logged-in dont show
return;
}
ob_start();
$login_request = LoginManager::process_login_request();
if ( false === $login_request['show_form'] && ! $args['hideFormAfterSubmit'] ) {
$login_request['show_form'] = true;
}
?>
has_errors() ) {
foreach ( $login_errors->get_error_codes() as $code ) {
foreach ( $login_errors->get_error_messages( $code ) as $message ) {
$error_messages .= $message . "
\n";
}
}
}
?>