fusion_builder_default_visibility( 'string' ), 'class' => '', 'id' => '', 'button_fullwidth' => $fusion_settings->get( 'button_span' ), 'caption' => '', 'caption_color' => '', 'form_field_layout' => $fusion_settings->get( 'user_login_form_field_layout' ), 'form_background_color' => $fusion_settings->get( 'user_login_form_background_color' ), 'heading' => '', 'heading_color' => '', 'link_color' => '', 'lost_password_link' => '', 'redirection_link' => '', 'register_link' => '', 'register_note' => '', 'show_labels' => $fusion_settings->get( 'user_login_form_show_labels' ), 'show_placeholders' => $fusion_settings->get( 'user_login_form_show_placeholders' ), 'show_remember_me' => $fusion_settings->get( 'user_login_form_show_remember_me' ), 'text_align' => $fusion_settings->get( 'user_login_text_align' ), 'disable_form' => '', // Only for demo usage. ), $args ); $defaults['main_container'] = ( $defaults['disable_form'] ) ? 'div' : 'form'; $defaults['label_class'] = ( 'yes' === $defaults['show_labels'] ) ? 'fusion-login-label' : 'fusion-hidden-content'; return $defaults; } /** * Render the login shortcode. * * @since 1.0 * * @param array $args Shortcode paramters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render_login( $args, $content = '' ) { $defaults = $this->default_shortcode_parameter( $args ); $defaults['action'] = 'login'; extract( $defaults ); $this->args = $defaults; $styles = $this->get_style_tag(); $html = '
' . $styles; if ( ! is_user_logged_in() ) { $user_login = ( isset( $_GET['log'] ) ) ? $_GET['log'] : ''; $html .= ( $heading ) ? '

' . $heading . '

' : ''; $html .= ( $caption ) ? '
' . $caption . '
' : ''; $html .= '<' . $main_container . ' ' . FusionBuilder::attributes( 'login-shortcode-form' ) . '>'; // Get the success/error notices. $html .= $this->render_notices( $action ); $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= ''; } else { $user = get_user_by( 'id', get_current_user_id() ); $html .= '
' . sprintf( esc_html__( 'Welcome %s', 'fusion-builder' ), ucwords( $user->display_name ) ) . '
'; $html .= '
' . get_avatar( $user->ID, apply_filters( 'fusion_login_box_avatar_size', 50 ) ) . '
'; $html .= ''; } $html .= '
'; return $html; } /** * Render the register shortcode. * * @since 1.8.0 * * @param array $args Shortcode paramters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render_register( $args, $content = '' ) { // Compatibility fix for versions prior to FB 1.5.2. if ( ! isset( $args['register_note'] ) ) { $args['register_note'] = esc_attr__( 'Registration confirmation will be emailed to you.', 'fusion-builder' ); } $defaults = $this->default_shortcode_parameter( $args ); $defaults['action'] = 'register'; extract( $defaults ); $this->args = $defaults; $styles = $this->get_style_tag(); $html = ''; if ( ! is_user_logged_in() ) { $html .= '
' . $styles; $html .= ( $heading ) ? '

' . $heading . '

' : ''; $html .= ( $caption ) ? '
' . $caption . '
' : ''; $html .= '<' . $main_container . ' ' . FusionBuilder::attributes( 'login-shortcode-form' ) . '>'; // Get the success/error notices. $html .= $this->render_notices( $action ); $html .= '
'; $html .= ''; $html .= ''; /* Only added as honeypot for spambots. */ $html .= ''; $html .= '
'; $html .= '
'; $html .= ( $register_note ) ? '' : ''; $html .= ''; $html .= '
'; $html .= ''; $html .= '
'; } else { $html .= do_shortcode( '[fusion_alert type="general"]' . esc_html__( 'You are already signed up.', 'fusion-builder' ) . '[/fusion_alert]' ); } return $html; } /** * Render the lost password shortcode. * * @since 1.8.0 * * @param array $args Shortcode paramters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render_lost_password( $args, $content = '' ) { $defaults = $this->default_shortcode_parameter( $args ); $defaults['action'] = 'lostpassword'; extract( $defaults ); $this->args = $defaults; $styles = $this->get_style_tag(); $html = ''; if ( ! is_user_logged_in() ) { $html .= '
' . $styles; $html .= ( $heading ) ? '

' . $heading . '

' : ''; $html .= ( $caption ) ? '
' . $caption . '
' : ''; $html .= '<' . $main_container . ' ' . FusionBuilder::attributes( 'login-shortcode-form' ) . '>'; // Get the success/error notices. $html .= $this->render_notices( $action ); $html .= '

' . esc_html__( 'Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.', 'fusion-builder' ) . '

'; $html .= '
'; $html .= ''; $placeholder = ( 'yes' === $show_placeholders ) ? ' placeholder="' . esc_attr__( 'Username or Email', 'fusion-builder' ) . '"' : ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; // Set the query string for successful password reset. if ( ! $redirection_link ) { $redirection_link = $this->get_redirection_link(); } $html .= $this->render_hidden_login_inputs( apply_filters( 'fusion_builder_user_lost_password_redirection_link', $redirection_link, array( 'action' => 'lostpassword', 'success' => '1', ) ) ); $html .= '
'; $html .= ''; $html .= '
'; } else { $html .= do_shortcode( '[fusion_alert type="general"]' . esc_html__( 'You are already signed in.', 'fusion-builder' ) . '[/fusion_alert]' ); } return $html; } /** * Render the needed hidden login inputs. * * @access public * @since 1.0 * @param string $redirection_link A redirection link. * @param array $query_args The query arguments. * @return string */ public function render_hidden_login_inputs( $redirection_link = '', $query_args = array() ) { $html = ''; if ( ! $this->args['disable_form'] ) { $html .= ''; // If no redirection link is given, get ones. if ( empty( $redirection_link ) ) { $redirection_link = wp_get_referer(); if ( isset( $_SERVER['REQUEST_URI'] ) ) { // @codingStandardsIgnoreLine $redirection_link = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; } // Redirection and source input. $redirection_link = remove_query_arg( 'loggedout', $redirection_link ); } if ( ! empty( $query_args ) ) { $redirection_link = add_query_arg( $query_args, $redirection_link ); } $html .= ''; $html .= ''; $html .= wp_referer_field( false ); } // Prevent hijacking of the form. $html .= ''; return $html; } /** * Generates nonce field, used in AJAX request. * * @access public */ public function ajax_get_login_nonce_field() { wp_nonce_field( 'fusion-login', '_wpnonce', false, true ); die(); } /** * Prints nonce AJAX script. * * @access public */ public function print_login_nonce_script() { // If we've already added the script to the footer // there's no need to proceed any further. if ( self::$nonce_added_to_footer ) { return; } // Set self::$nonce_added_to_footer to true to avoid adding it multiple times. self::$nonce_added_to_footer = true; ?> get_redirection_link(); // Redirect to change password form. if ( 'resetpass' === $action ) { wp_redirect( add_query_arg( array( 'action' => 'resetpass' ), $redirect_link ) ); exit; } if ( 'post-data' === $action || // Don't mess with POST requests. 'reauth' === $action || // Need to reauthorize. 'logout' === $action // User is logging out. ) { return; } wp_redirect( $redirect_link ); exit; } /** * Constructs a redirection link, either from the $redirect_to variable or from the referer. * * @access public * @since 1.0 * @param bool $error Whether we have an error or not. * @return string The redirection link. */ public function get_redirection_link( $error = false ) { $redirection_link = ''; if ( isset( $_REQUEST['redirect_to'] ) ) { $redirection_link = $_REQUEST['redirect_to']; } elseif ( $error && isset( $_REQUEST['_wp_http_referer'] ) ) { $redirection_link = $_REQUEST['_wp_http_referer']; } elseif ( isset( $_SERVER ) && isset( $_SERVER['HTTP_REFERER'] ) && $_SERVER['HTTP_REFERER'] ) { $referer_array = wp_parse_url( $_SERVER['HTTP_REFERER'] ); $referer = $referer_array['scheme'] . '://' . $referer_array['host'] . $referer_array['path']; // If there's a valid referrer, and it's not the default log-in screen. if ( ! empty( $referer ) && ! strstr( $referer, 'wp-login' ) && ! strstr( $referer, 'wp-admin' ) ) { $redirection_link = $referer; } } return $redirection_link; } /** * Redirects after the login, both on success and error. * * @since 1.8.0 * * @param string $redirect_to The redirect destination URL. * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter. * @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise. * @return string The redirection link. */ public function login_redirect( $redirect_to, $requested_redirect_to, $user ) { // Make sure we come from the login box. if ( isset( $_POST['fusion_login_box'] ) ) { check_admin_referer( 'fusion-login' ); // If we have no errors, remove the action query arg. if ( ! isset( $user->errors ) ) { return $redirect_to; } // Redirect to the page with the login box with error code. wp_redirect( add_query_arg( array( 'action' => 'login', 'success' => '0', ), $this->get_redirection_link( true ) ) ); exit; } return $redirect_to; } /** * Redirects after the login, both on success and error. * * @since 1.8.0 * * @param WP_Error $errors A WP_Error object containing any errors encountered during registration. * @param string $sanitized_user_login User's username after it has been sanitized. * @param string $user_email User's email. * @return void|WP_Error Error object. */ public function registration_error_redirect( $errors, $sanitized_user_login, $user_email ) { // Make sure we come from the login box. if ( isset( $_POST['fusion_login_box'] ) ) { check_admin_referer( 'fusion-login' ); $redirection_link = $this->get_redirection_link(); // Redirect spammers directly to success page. if ( ! isset( $_POST['confirm_email'] ) || '' !== $_POST['confirm_email'] ) { wp_redirect( add_query_arg( array( 'action' => 'register', 'success' => '1', ), $redirection_link ) ); exit; } // Error - prepare query strings for front end notice output. if ( ! empty( $errors->errors ) ) { $redirection_link = $this->get_redirection_link( true ); $redirection_link = add_query_arg( array( 'action' => 'register', 'success' => '0', ), $redirection_link ); // Empty username. if ( isset( $errors->errors['empty_username'] ) ) { $redirection_link = add_query_arg( array( 'empty_username' => '1' ), $redirection_link ); } // Empty email. if ( isset( $errors->errors['empty_email'] ) ) { $redirection_link = add_query_arg( array( 'empty_email' => '1' ), $redirection_link ); } // Username exists. if ( isset( $errors->errors['username_exists'] ) ) { $redirection_link = add_query_arg( array( 'username_exists' => '1' ), $redirection_link ); } // Email exists. if ( isset( $errors->errors['email_exists'] ) ) { $redirection_link = add_query_arg( array( 'email_exists' => '1' ), $redirection_link ); } wp_redirect( $redirection_link ); exit; } } return $errors; } /** * Redirects on lost password submission error.. * * @since 1.8.0 * * @return void */ public function lost_password_redirect() { // Make sure we come from the login box. if ( isset( $_POST['fusion_login_box'] ) ) { check_admin_referer( 'fusion-login' ); $redirection_link = add_query_arg( array( 'action' => 'lostpassword', 'success' => '0', ), $this->get_redirection_link( true ) ); $user_data = ''; // Error - empty input. if ( empty( $_POST['user_login'] ) ) { $redirection_link = add_query_arg( array( 'empty_login' => '1' ), $redirection_link ); // Check email. } elseif ( strpos( $_POST['user_login'], '@' ) ) { $user_data = get_user_by( 'email', trim( $_POST['user_login'] ) ); // Error - invalid email. if ( empty( $user_data ) ) { $redirection_link = add_query_arg( array( 'unregistered_mail' => '1' ), $redirection_link ); } } else { // Check username. $login = trim( $_POST['user_login'] ); $user_data = get_user_by( 'login', $login ); // Error - invalid username. if ( empty( $user_data ) ) { $redirection_link = add_query_arg( array( 'unregisred_user' => '1' ), $redirection_link ); } } // Redirect on error. if ( empty( $user_data ) ) { wp_redirect( $redirection_link ); exit; } } } /** * Renders the response messages after form submission. * * @since 1.8.0 * * @param string $context The context of the calling form. * @return string */ public function render_notices( $context = '' ) { // Make sure we have some query string returned; if not we had a successful login. if ( isset( $_GET['action'] ) && $_GET['action'] == $context ) { // Login - there is only an error message and it is always the same. if ( 'login' == $_GET['action'] && isset( $_GET['success'] ) && '0' == $_GET['success'] ) { $notice_type = 'error'; $notices = esc_attr__( 'Login failed, please try again.', 'fusion-builder' ); // Registration. } elseif ( 'register' == $_GET['action'] ) { // Success. if ( isset( $_GET['success'] ) && '1' == $_GET['success'] ) { $notice_type = 'success'; $notices = esc_attr__( 'Registration complete. Please check your e-mail.', 'fusion-builder' ); // Error. } else { $notice_type = 'error'; $notices = ''; // Empty username. if ( isset( $_GET['empty_username'] ) ) { $notices .= esc_attr__( 'Please enter a username.', 'fusion-builder' ) . '
'; } // Empty email. if ( isset( $_GET['empty_email'] ) ) { $notices .= esc_attr__( 'Please type your e-mail address.', 'fusion-builder' ) . '
'; } // Username exists. if ( isset( $_GET['username_exists'] ) ) { $notices .= esc_attr__( 'This username is already registered. Please choose another one.', 'fusion-builder' ) . '
'; } // Email exists. if ( isset( $_GET['email_exists'] ) ) { $notices .= esc_attr__( 'This email is already registered, please choose another one.', 'fusion-builder' ) . '
'; } // Generic Error. if ( ! $notices ) { $notices .= esc_attr__( 'Something went wrong during registration. Please try again.', 'fusion-builder' ); // Delete the last line break. } else { $notices = substr( $notices, 0, strlen( $notices ) - 6 ); } } } elseif ( 'lostpassword' == $_GET['action'] ) { // Lost password. if ( isset( $_GET['success'] ) && '1' == $_GET['success'] ) { // Success. $notice_type = 'success'; $notices = esc_attr__( 'Check your e-mail for the confirmation link.', 'fusion-builder' ); } else { // Error. $notice_type = 'error'; $notices = ''; // Empty login. if ( isset( $_GET['empty_login'] ) ) { $notices .= esc_attr__( 'Enter a username or e-mail address.', 'fusion-builder' ) . '
'; } // Empty login. if ( isset( $_GET['unregisred_user'] ) ) { $notices .= esc_attr__( 'Invalid username.', 'fusion-builder' ) . '
'; } // Empty login. if ( isset( $_GET['unregistered_mail'] ) ) { $notices .= esc_attr__( 'There is no user registered with that email address.', 'fusion-builder' ) . '
'; } // Generic Error. if ( ! $notices ) { $notices .= esc_attr__( 'Invalid username or e-mail.', 'fusion-builder' ); // Delete the last line break. } else { $notices = substr( $notices, 0, strlen( $notices ) - 6 ); } } } return do_shortcode( '[fusion_alert type="' . $notice_type . '"]' . $notices . '[/fusion_alert]' ); } return ''; } /** * Constructs the scoped style tag for the login box. * * @since 1.8.0 * * @return string The scoped styles. */ public function get_style_tag() { $this->login_counter++; $styles = ''; if ( $this->args['heading_color'] ) { $styles .= '.fusion-login-box-' . $this->login_counter . ' .fusion-login-heading{color:' . $this->args['heading_color'] . ';}'; } if ( $this->args['caption_color'] ) { $styles .= '.fusion-login-box-' . $this->login_counter . ' .fusion-login-caption{color:' . $this->args['caption_color'] . ';}'; } if ( $this->args['link_color'] ) { $styles .= '.fusion-login-box-' . $this->login_counter . ' a{color:' . $this->args['link_color'] . ';}'; } if ( $styles ) { $styles = ''; } return $styles; } /** * Builds the attributes array. * * @access public * @since 1.0 * @return array */ public function attr() { $attr = fusion_builder_visibility_atts( $this->args['hide_on_mobile'], array( 'class' => 'fusion-login-box fusion-login-box-' . $this->login_counter . ' fusion-login-box-' . $this->args['action'] . ' fusion-login-align-' . $this->args['text_align'] . ' fusion-login-field-layout-' . $this->args['form_field_layout'], ) ); if ( $this->args['class'] ) { $attr['class'] .= ' ' . $this->args['class']; } if ( $this->args['id'] ) { $attr['id'] = $this->args['id']; } return $attr; } /** * Attributes function for the form container. * * @since 1.0 * * @return array The attributes. */ public function form_attr() { $attr = array( 'class' => 'fusion-login-form', ); if ( $this->args['form_background_color'] ) { $attr['style'] = 'background-color:' . $this->args['form_background_color'] . ';'; if ( 0 === Fusion_Color::new_color( $this->args['form_background_color'] )->alpha ) { $attr['style'] .= 'padding:0;'; } } if ( $this->args['disable_form'] ) { return $attr; } $attr['name'] = $this->args['action'] . 'form'; $attr['id'] = $this->args['action'] . 'form'; $attr['method'] = 'post'; if ( 'login' == $this->args['action'] ) { $attr['action'] = site_url( 'wp-login.php', 'login_post' ); } else { $attr['action'] = site_url( add_query_arg( array( 'action' => $this->args['action'] ), 'wp-login.php' ), 'login_post' ); } return $attr; } /** * Attribues function for the button. * * @since 1.0 * * @return array The attributes. */ public function button_attr() { global $fusion_settings; $button_size = strtolower( $fusion_settings->get( 'button_size', false, 'medium' ) ); $attr = array( 'class' => 'fusion-login-button fusion-button button-default button-' . $button_size, ); if ( 'yes' != $this->args['button_fullwidth'] ) { $attr['class'] .= ' fusion-login-button-no-fullwidth'; } $attr['type'] = 'submit'; $attr['name'] = 'wp-submit'; return $attr; } /** * Builds the dynamic styling. * * @access public * @since 1.1 * @return array */ public function add_styling() { global $fusion_library, $fusion_settings, $dynamic_css_helpers, $content_media_query; $main_elements = apply_filters( 'fusion_builder_element_classes', array( '.fusion-login-box' ), '.fusion-login-box' ); $elements = $dynamic_css_helpers->map_selector( $main_elements, ' a:hover' ); $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['color'] = $fusion_library->sanitize->color( $fusion_settings->get( 'primary_color' ) ); if ( 'yes' == $fusion_settings->get( 'button_span' ) && class_exists( 'WooCommerce' ) ) { $elements = $dynamic_css_helpers->map_selector( $main_elements, '.fusion-login-box-submit' ); $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['float'] = 'none'; } $elements = array( '.fusion-login-box.fusion-login-field-layout-floated .fusion-login-fields', '.fusion-login-box.fusion-login-field-layout-floated.fusion-login-align-textflow.fusion-login-box-login .fusion-login-additional-content', '.fusion-login-box.fusion-login-field-layout-floated.fusion-login-align-textflow.fusion-login-box-register .fusion-login-additional-content', ); $css[ $content_media_query ][ $dynamic_css_helpers->implode( $elements ) ]['display'] = 'block'; $css[ $content_media_query ]['.fusion-login-box.fusion-login-field-layout-floated .fusion-login-links']['margin'] = '0 -10px'; $css[ $content_media_query ]['.fusion-login-box.fusion-login-field-layout-floated.fusion-login-align-textflow.fusion-login-box-register .fusion-login-registration-confirm']['margin'] = '0 0 20px 0'; $css[ $content_media_query ]['.fusion-login-box.fusion-login-field-layout-floated.fusion-login-align-textflow.fusion-login-box-login .fusion-login-submit-wrapper']['margin-bottom'] = '20px'; return $css; } /** * Adds settings to element options panel. * * @access public * @since 1.1 * @return array $sections User Login settings. */ public function add_options() { return array( 'user_shortcode_section' => array( 'label' => esc_html__( 'User Login Element', 'fusion-builder' ), 'id' => 'user_login_shortcode_section', 'description' => '', 'type' => 'accordion', 'fields' => array( 'user_login_text_align' => array( 'label' => esc_html__( 'User Login Text Align', 'fusion-builder' ), 'description' => esc_html__( 'Controls the alignment of all user login content. "Text Flow" follows the default text align of the site. "Center" will center all elements.', 'fusion-builder' ), 'id' => 'user_login_text_align', 'default' => 'center', 'type' => 'radio-buttonset', 'choices' => array( 'textflow' => esc_html__( 'Text Flow', 'fusion-builder' ), 'center' => esc_html__( 'Center', 'fusion-builder' ), ), ), 'user_login_form_field_layout' => array( 'label' => esc_html__( 'User Login Form Field Layout', 'fusion-builder' ), 'description' => __( 'Choose if form fields should be stacked and full width, or if they should be floated. IMPORTANT: This option does only work for the login and the register form.', 'fusion-builder' ), 'id' => 'user_login_form_field_layout', 'default' => 'stacked', 'type' => 'radio-buttonset', 'choices' => array( 'stacked' => esc_html__( 'Stacked', 'fusion-builder' ), 'floated' => esc_html__( 'Floated', 'fusion-builder' ), ), ), 'user_login_form_show_labels' => array( 'label' => esc_html__( 'User Login Show Labels', 'fusion-builder' ), 'description' => esc_html__( 'Controls if the form field labels should be shown.', 'fusion-builder' ), 'id' => 'user_login_form_show_labels', 'default' => 'no', 'type' => 'radio-buttonset', 'choices' => array( 'yes' => esc_html__( 'Yes', 'fusion-builder' ), 'no' => esc_html__( 'No', 'fusion-builder' ), ), ), 'user_login_form_show_placeholders' => array( 'label' => esc_html__( 'User Login Show Placeholders', 'fusion-builder' ), 'description' => esc_html__( 'Controls if the form field placeholders should be shown.', 'fusion-builder' ), 'id' => 'user_login_form_show_placeholders', 'default' => 'yes', 'type' => 'radio-buttonset', 'choices' => array( 'yes' => esc_html__( 'Yes', 'fusion-builder' ), 'no' => esc_html__( 'No', 'fusion-builder' ), ), ), 'user_login_form_show_remember_me' => array( 'label' => esc_html__( 'User Login Show Remember Me Checkbox', 'fusion-builder' ), 'description' => esc_html__( 'Controls if the rember me checkbox should be displayed in the login form.', 'fusion-builder' ), 'id' => 'user_login_form_show_remember_me', 'default' => 'no', 'type' => 'radio-buttonset', 'choices' => array( 'yes' => esc_html__( 'Yes', 'fusion-builder' ), 'no' => esc_html__( 'No', 'fusion-builder' ), ), ), 'user_login_form_background_color' => array( 'label' => esc_html__( 'User Login Form Background Color', 'fusion-builder' ), 'description' => esc_html__( 'Controls the color of the form background.', 'fusion-builder' ), 'id' => 'user_login_form_background_color', 'default' => '#f6f6f6', 'type' => 'color-alpha', ), ), ), ); } /** * Sets the necessary scripts. * * @access public * @since 1.1 * @return void */ public function add_scripts() { Fusion_Dynamic_JS::enqueue_script( 'fusion-button' ); } } } new FusionSC_Login(); } /** * Map shortcode to Fusion Builder. * * @since 1.0 */ function fusion_element_login() { global $fusion_settings; fusion_builder_map( array( 'name' => esc_attr__( 'User Login', 'fusion-builder' ), 'description' => esc_attr__( 'Enter some content for this block', 'fusion-builder' ), 'shortcode' => 'fusion_login', 'icon' => 'fusiona-calendar-check-o', 'params' => array( array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Text Align', 'fusion-builder' ), 'description' => esc_attr__( 'Choose the alignment of all content parts. "Text Flow" follows the default text align of the site. "Center" will center all elements.', 'fusion-builder' ), 'param_name' => 'text_align', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'textflow' => esc_attr__( 'Text Flow', 'fusion-builder' ), 'center' => esc_attr__( 'Center', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Form Field Layout', 'fusion-builder' ), 'description' => esc_attr__( 'Choose if form fields should be stacked and full width, or if they should be floated.', 'fusion-builder' ), 'param_name' => 'form_field_layout', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'stacked' => esc_attr__( 'Stacked', 'fusion-builder' ), 'floated' => esc_attr__( 'Floated', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Heading', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a heading text.', 'fusion-builder' ), 'param_name' => 'heading', 'value' => esc_attr__( 'Your Content Goes Here', 'fusion-builder' ), 'placeholder' => true, ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Heading Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a heading color.', 'fusion-builder' ), 'param_name' => 'heading_color', 'value' => '', 'dependency' => array( array( 'element' => 'heading', 'value' => '', 'operator' => '!=', ), ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Caption', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a caption text.', 'fusion-builder' ), 'param_name' => 'caption', 'value' => esc_attr__( 'Your Content Goes Here', 'fusion-builder' ), 'placeholder' => true, ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Caption Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a caption color.', 'fusion-builder' ), 'param_name' => 'caption_color', 'value' => '', 'dependency' => array( array( 'element' => 'caption', 'value' => '', 'operator' => '!=', ), ), ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Labels', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the form field labels should be shown.', 'fusion-builder' ), 'param_name' => 'show_labels', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Placeholders', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the form field placeholders should be shown.', 'fusion-builder' ), 'param_name' => 'show_placeholders', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Button Span', 'fusion-builder' ), 'description' => esc_attr__( 'Choose to have the button span the full width.', 'fusion-builder' ), 'param_name' => 'button_fullwidth', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Form Background Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a background color for the form wrapping box.', 'fusion-builder' ), 'param_name' => 'form_background_color', 'value' => '', 'default' => $fusion_settings->get( 'user_login_form_background_color' ), ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Link Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a link color.', 'fusion-builder' ), 'param_name' => 'link_color', 'value' => '', 'default' => $fusion_settings->get( 'link_color' ), ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Remember Me Checkbox', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the rember me checkbox should be displayed in the login form.', 'fusion-builder' ), 'param_name' => 'show_remember_me', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'link_selector', 'heading' => esc_attr__( 'Redirection Link', 'fusion-builder' ), 'description' => esc_attr__( 'Add the url to which a user should redirected after form submission. Leave empty to use the same page.', 'fusion-builder' ), 'param_name' => 'redirection_link', 'value' => '', ), array( 'type' => 'link_selector', 'heading' => esc_attr__( 'Register Link', 'fusion-builder' ), 'description' => esc_attr__( 'Add the url the "Register" link should open.', 'fusion-builder' ), 'param_name' => 'register_link', 'value' => '', ), array( 'type' => 'link_selector', 'heading' => esc_attr__( 'Lost Password Link', 'fusion-builder' ), 'description' => esc_attr__( 'Add the url the "Lost Password" link should open.', 'fusion-builder' ), 'param_name' => 'lost_password_link', 'value' => '', ), array( 'type' => 'checkbox_button_set', 'heading' => esc_attr__( 'Element Visibility', 'fusion-builder' ), 'param_name' => 'hide_on_mobile', 'value' => fusion_builder_visibility_options( 'full' ), 'default' => fusion_builder_default_visibility( 'array' ), 'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ), 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'class', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ), 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'id', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), ), ) ); } add_action( 'fusion_builder_before_init', 'fusion_element_login' ); /** * Map shortcode to Fusion Builder. * * @since 1.0 */ function fusion_element_lost_password() { global $fusion_settings; fusion_builder_map( array( 'name' => esc_attr__( 'User Lost Password', 'fusion-builder' ), 'shortcode' => 'fusion_lost_password', 'icon' => 'fusiona-calendar-check-o', 'params' => array( array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Text Align', 'fusion-builder' ), 'description' => esc_attr__( 'Choose the alignment of all content parts. "Text Flow" follows the default text align of the site. "Center" will center all elements.', 'fusion-builder' ), 'param_name' => 'text_align', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'textflow' => esc_attr__( 'Text Flow', 'fusion-builder' ), 'center' => esc_attr__( 'Center', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Heading', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a heading text.', 'fusion-builder' ), 'param_name' => 'heading', 'value' => esc_attr__( 'Your Content Goes Here', 'fusion-builder' ), 'placeholder' => true, ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Heading Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a heading color.', 'fusion-builder' ), 'param_name' => 'heading_color', 'value' => '', 'dependency' => array( array( 'element' => 'heading', 'value' => '', 'operator' => '!=', ), ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Caption', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a caption text.', 'fusion-builder' ), 'param_name' => 'caption', 'value' => esc_attr__( 'Your Content Goes Here', 'fusion-builder' ), 'placeholder' => true, ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Caption Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a caption color.', 'fusion-builder' ), 'param_name' => 'caption_color', 'value' => '', 'dependency' => array( array( 'element' => 'caption', 'value' => '', 'operator' => '!=', ), ), ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Labels', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the form field labels should be shown.', 'fusion-builder' ), 'param_name' => 'show_labels', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Placeholders', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the form field placeholders should be shown.', 'fusion-builder' ), 'param_name' => 'show_placeholders', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Button Span', 'fusion-builder' ), 'description' => esc_attr__( 'Choose to have the button span the full width.', 'fusion-builder' ), 'param_name' => 'button_fullwidth', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Form Background Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a background color for the form wrapping box.', 'fusion-builder' ), 'param_name' => 'form_background_color', 'value' => '', 'default' => $fusion_settings->get( 'user_login_form_background_color' ), ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Link Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a link color.', 'fusion-builder' ), 'param_name' => 'link_color', 'value' => '', 'default' => $fusion_settings->get( 'link_color' ), ), array( 'type' => 'link_selector', 'heading' => esc_attr__( 'Redirection Link', 'fusion-builder' ), 'description' => esc_attr__( 'Add the url to which a user should redirected after form submission. Leave empty to use the same page.', 'fusion-builder' ), 'param_name' => 'redirection_link', 'value' => '', ), array( 'type' => 'checkbox_button_set', 'heading' => esc_attr__( 'Element Visibility', 'fusion-builder' ), 'param_name' => 'hide_on_mobile', 'value' => fusion_builder_visibility_options( 'full' ), 'default' => fusion_builder_default_visibility( 'array' ), 'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ), 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'class', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ), 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'id', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), ), ) ); } add_action( 'fusion_builder_before_init', 'fusion_element_lost_password' ); /** * Map shortcode to Fusion Builder. * * @since 1.0 */ function fusion_element_register() { global $fusion_settings; fusion_builder_map( array( 'name' => esc_attr__( 'User Register', 'fusion-builder' ), 'shortcode' => 'fusion_register', 'icon' => 'fusiona-calendar-check-o', 'params' => array( array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Text Align', 'fusion-builder' ), 'description' => esc_attr__( 'Choose the alignment of all content parts. "Text Flow" follows the default text align of the site. "Center" will center all elements.', 'fusion-builder' ), 'param_name' => 'text_align', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'textflow' => esc_attr__( 'Text Flow', 'fusion-builder' ), 'center' => esc_attr__( 'Center', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Form Field Layout', 'fusion-builder' ), 'description' => esc_attr__( 'Choose if form fields should be stacked and full width, or if they should be floated.', 'fusion-builder' ), 'param_name' => 'form_field_layout', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'stacked' => esc_attr__( 'Stacked', 'fusion-builder' ), 'floated' => esc_attr__( 'Floated', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Heading', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a heading text.', 'fusion-builder' ), 'param_name' => 'heading', 'value' => esc_attr__( 'Your Content Goes Here', 'fusion-builder' ), 'placeholder' => true, ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Heading Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a heading color.', 'fusion-builder' ), 'param_name' => 'heading_color', 'value' => '', 'dependency' => array( array( 'element' => 'heading', 'value' => '', 'operator' => '!=', ), ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Caption', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a caption text.', 'fusion-builder' ), 'param_name' => 'caption', 'value' => esc_attr__( 'Your Content Goes Here', 'fusion-builder' ), 'placeholder' => true, ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Caption Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a caption color.', 'fusion-builder' ), 'param_name' => 'caption_color', 'value' => '', 'dependency' => array( array( 'element' => 'caption', 'value' => '', 'operator' => '!=', ), ), ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Labels', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the form field labels should be shown.', 'fusion-builder' ), 'param_name' => 'show_labels', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Show Placeholders', 'fusion-builder' ), 'description' => esc_attr__( 'Controls if the form field placeholders should be shown.', 'fusion-builder' ), 'param_name' => 'show_placeholders', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Button Span', 'fusion-builder' ), 'description' => esc_attr__( 'Choose to have the button span the full width.', 'fusion-builder' ), 'param_name' => 'button_fullwidth', 'value' => array( '' => esc_attr__( 'Default', 'fusion-builder' ), 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => '', ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Form Background Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a background color for the form wrapping box.', 'fusion-builder' ), 'param_name' => 'form_background_color', 'value' => '', 'default' => $fusion_settings->get( 'user_login_form_background_color' ), ), array( 'type' => 'colorpickeralpha', 'heading' => esc_attr__( 'Link Color', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a link color.', 'fusion-builder' ), 'param_name' => 'link_color', 'value' => '', 'default' => $fusion_settings->get( 'link_color' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Registration Notice', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a notice text that will be displayed before the register button. Leave empty if no text should be displayed.', 'fusion-builder' ), 'param_name' => 'register_note', 'value' => esc_attr__( 'Registration confirmation will be emailed to you.', 'fusion-builder' ), ), array( 'type' => 'link_selector', 'heading' => esc_attr__( 'Redirection Link', 'fusion-builder' ), 'description' => esc_attr__( 'Add the url to which a user should redirected after form submission. Leave empty to use the same page.', 'fusion-builder' ), 'param_name' => 'redirection_link', 'value' => '', ), array( 'type' => 'checkbox_button_set', 'heading' => esc_attr__( 'Element Visibility', 'fusion-builder' ), 'param_name' => 'hide_on_mobile', 'value' => fusion_builder_visibility_options( 'full' ), 'default' => fusion_builder_default_visibility( 'array' ), 'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ), 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'class', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ), 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'id', 'value' => '', 'group' => esc_attr__( 'General', 'fusion-builder' ), ), ), ) ); } add_action( 'fusion_builder_before_init', 'fusion_element_register' );