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 .= '' . esc_html__( 'Log in', 'fusion-builder' ) . ' ';
// 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_login_redirection_link', $redirection_link ) );
$html .= '
';
$html .= '
';
$html .= '
';
$html .= '' . $main_container . '>';
} 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 .= ( $register_note ) ? '
' . htmlspecialchars_decode( $register_note, ENT_HTML5 ) . '
' : '';
$html .= '
';
$html .= '' . esc_html__( 'Register', 'fusion-builder' ) . ' ';
// 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_register_redirection_link',
$redirection_link, array(
'action' => 'register',
'success' => '1',
)
)
);
$html .= '
';
$html .= '
';
$html .= '' . $main_container . '>';
$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 .= '' . esc_html__( 'Username or Email', 'fusion-builder' ) . ' ';
$placeholder = ( 'yes' === $show_placeholders ) ? ' placeholder="' . esc_attr__( 'Username or Email', 'fusion-builder' ) . '"' : '';
$html .= ' ';
$html .= '
';
$html .= '
';
$html .= '' . esc_html__( 'Reset Password', 'fusion-builder' ) . ' ';
// 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 .= '' . $main_container . '>';
$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' );