Easily create a login form using the fluentform_before_insert_submission hook.
First, make a form with email and password (Make sure the name attribute is ’email’ and ‘password’ for the corresponding field). Then paste the form shortcode into a page. Change the form id in the bellow code (23) with your created fluentform’s form id and paste in your theme’s functions.php file or in a PHP code snippet plugin..
Note: In this example: No actual form submission will happen as we are redirecting the user before inserting the data
add_action('fluentform_before_insert_submission', function ($insertData, $data, $form) { if($form->id != 23) { // 23 is your form id. Change the 23 with your own login for ID return; } $redirectUrl = home_url(); // You can change the redirect url after successful login if (get_current_user_id()) { // user already registered wp_send_json_success([ 'result' => [ 'redirectUrl' => $redirectUrl, 'message' => 'Your are already logged in. Redirecting now...' ] ]); } $email = \FluentForm\Framework\Helpers\ArrayHelper::get($data, 'email'); // your form should have email field $password = \FluentForm\Framework\Helpers\ArrayHelper::get($data, 'password'); // your form should have password field if(!$email || !$password) { wp_send_json_error([ 'errors' => ['Please provide email and password'] ], 423); } $user = get_user_by_email($email); if($user && wp_check_password($password, $user->user_pass, $user->ID)) { wp_clear_auth_cookie(); wp_set_current_user($user->ID); wp_set_auth_cookie($user->ID); /* user is not logged in. * If you use wp_send_json_success the the submission will not be recorded * If you remove the wp_send_json_success then it will record the data in fluentform * in that case you should redirect the user on form submission settings */ wp_send_json_success([ 'result' => [ 'redirectUrl' => $redirectUrl, 'message' => 'Your are logged in, Please wait while you are redirecting' ] ]); } else { // password or user don't match wp_send_json_error([ 'errors' => ['Email / password is not correct'] ], 423); } }, 10, 3);
For details of the hook fluentform_validate_input_item_input_email check this documentation link.
Powered by BetterDocs
Your email address will not be published. Required fields are marked *
Comment
Name*
Email*
Website