How to reset user password by wordpress rest api












0















Any one of you know know to send a reset link for lost password by wordpress rest api ? I have been looking into wordpress rest api documentation but I haven't find out anything about it. Maybe someone has done a custom function for that.










share|improve this question



























    0















    Any one of you know know to send a reset link for lost password by wordpress rest api ? I have been looking into wordpress rest api documentation but I haven't find out anything about it. Maybe someone has done a custom function for that.










    share|improve this question

























      0












      0








      0








      Any one of you know know to send a reset link for lost password by wordpress rest api ? I have been looking into wordpress rest api documentation but I haven't find out anything about it. Maybe someone has done a custom function for that.










      share|improve this question














      Any one of you know know to send a reset link for lost password by wordpress rest api ? I have been looking into wordpress rest api documentation but I haven't find out anything about it. Maybe someone has done a custom function for that.







      wordpress-rest-api woocommerce-rest-api






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 30 '18 at 20:23









      Clever AlmeidaClever Almeida

      570820




      570820
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I found out a way to do that:



          function runRetrivePassword($data) {
          global $wpdb, $wp_hasher;
          $user_data = get_user_by('email', $data['email']);
          if ( !$user_data ) return array( 'result' => false );
          do_action('lostpassword_post');
          $user_login = $user_data->user_login;
          $user_email = $user_data->user_email;
          $key = get_password_reset_key( $user_data );
          $message = __('Someone requested that the password be reset for the following account:') . "rnrn";
          $message .= network_home_url( '/' ) . "rnrn";
          $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
          $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "rnrn";
          $message .= __('To reset your password, visit the following address:') . "rnrn";
          $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
          if ( is_multisite() )
          $blogname = $GLOBALS['current_site']->site_name;
          else
          $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
          $title = sprintf( __('[%s] Password Reset'), $blogname );
          $title = apply_filters('retrieve_password_title', $title);
          $message = apply_filters('retrieve_password_message', $message, $key);
          if ( $message && !wp_mail($user_email, $title, $message) )
          wp_die( __('The e-mail could not be sent.') . "<br />n" . __('Possible reason: your host may have disabled the mail() function...') );
          return array( 'result' => true ); }

          add_action( 'rest_api_init', function () {
          register_rest_route( 'apiuser/v1', '/forgotpwd/(?P<email>S+)', array(
          'methods' => 'GET',
          'callback' => 'runRetrivePassword'
          ) );


          } );






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53981138%2fhow-to-reset-user-password-by-wordpress-rest-api%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I found out a way to do that:



            function runRetrivePassword($data) {
            global $wpdb, $wp_hasher;
            $user_data = get_user_by('email', $data['email']);
            if ( !$user_data ) return array( 'result' => false );
            do_action('lostpassword_post');
            $user_login = $user_data->user_login;
            $user_email = $user_data->user_email;
            $key = get_password_reset_key( $user_data );
            $message = __('Someone requested that the password be reset for the following account:') . "rnrn";
            $message .= network_home_url( '/' ) . "rnrn";
            $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
            $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "rnrn";
            $message .= __('To reset your password, visit the following address:') . "rnrn";
            $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
            if ( is_multisite() )
            $blogname = $GLOBALS['current_site']->site_name;
            else
            $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
            $title = sprintf( __('[%s] Password Reset'), $blogname );
            $title = apply_filters('retrieve_password_title', $title);
            $message = apply_filters('retrieve_password_message', $message, $key);
            if ( $message && !wp_mail($user_email, $title, $message) )
            wp_die( __('The e-mail could not be sent.') . "<br />n" . __('Possible reason: your host may have disabled the mail() function...') );
            return array( 'result' => true ); }

            add_action( 'rest_api_init', function () {
            register_rest_route( 'apiuser/v1', '/forgotpwd/(?P<email>S+)', array(
            'methods' => 'GET',
            'callback' => 'runRetrivePassword'
            ) );


            } );






            share|improve this answer




























              0














              I found out a way to do that:



              function runRetrivePassword($data) {
              global $wpdb, $wp_hasher;
              $user_data = get_user_by('email', $data['email']);
              if ( !$user_data ) return array( 'result' => false );
              do_action('lostpassword_post');
              $user_login = $user_data->user_login;
              $user_email = $user_data->user_email;
              $key = get_password_reset_key( $user_data );
              $message = __('Someone requested that the password be reset for the following account:') . "rnrn";
              $message .= network_home_url( '/' ) . "rnrn";
              $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
              $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "rnrn";
              $message .= __('To reset your password, visit the following address:') . "rnrn";
              $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
              if ( is_multisite() )
              $blogname = $GLOBALS['current_site']->site_name;
              else
              $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
              $title = sprintf( __('[%s] Password Reset'), $blogname );
              $title = apply_filters('retrieve_password_title', $title);
              $message = apply_filters('retrieve_password_message', $message, $key);
              if ( $message && !wp_mail($user_email, $title, $message) )
              wp_die( __('The e-mail could not be sent.') . "<br />n" . __('Possible reason: your host may have disabled the mail() function...') );
              return array( 'result' => true ); }

              add_action( 'rest_api_init', function () {
              register_rest_route( 'apiuser/v1', '/forgotpwd/(?P<email>S+)', array(
              'methods' => 'GET',
              'callback' => 'runRetrivePassword'
              ) );


              } );






              share|improve this answer


























                0












                0








                0







                I found out a way to do that:



                function runRetrivePassword($data) {
                global $wpdb, $wp_hasher;
                $user_data = get_user_by('email', $data['email']);
                if ( !$user_data ) return array( 'result' => false );
                do_action('lostpassword_post');
                $user_login = $user_data->user_login;
                $user_email = $user_data->user_email;
                $key = get_password_reset_key( $user_data );
                $message = __('Someone requested that the password be reset for the following account:') . "rnrn";
                $message .= network_home_url( '/' ) . "rnrn";
                $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
                $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "rnrn";
                $message .= __('To reset your password, visit the following address:') . "rnrn";
                $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
                if ( is_multisite() )
                $blogname = $GLOBALS['current_site']->site_name;
                else
                $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
                $title = sprintf( __('[%s] Password Reset'), $blogname );
                $title = apply_filters('retrieve_password_title', $title);
                $message = apply_filters('retrieve_password_message', $message, $key);
                if ( $message && !wp_mail($user_email, $title, $message) )
                wp_die( __('The e-mail could not be sent.') . "<br />n" . __('Possible reason: your host may have disabled the mail() function...') );
                return array( 'result' => true ); }

                add_action( 'rest_api_init', function () {
                register_rest_route( 'apiuser/v1', '/forgotpwd/(?P<email>S+)', array(
                'methods' => 'GET',
                'callback' => 'runRetrivePassword'
                ) );


                } );






                share|improve this answer













                I found out a way to do that:



                function runRetrivePassword($data) {
                global $wpdb, $wp_hasher;
                $user_data = get_user_by('email', $data['email']);
                if ( !$user_data ) return array( 'result' => false );
                do_action('lostpassword_post');
                $user_login = $user_data->user_login;
                $user_email = $user_data->user_email;
                $key = get_password_reset_key( $user_data );
                $message = __('Someone requested that the password be reset for the following account:') . "rnrn";
                $message .= network_home_url( '/' ) . "rnrn";
                $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
                $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "rnrn";
                $message .= __('To reset your password, visit the following address:') . "rnrn";
                $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
                if ( is_multisite() )
                $blogname = $GLOBALS['current_site']->site_name;
                else
                $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
                $title = sprintf( __('[%s] Password Reset'), $blogname );
                $title = apply_filters('retrieve_password_title', $title);
                $message = apply_filters('retrieve_password_message', $message, $key);
                if ( $message && !wp_mail($user_email, $title, $message) )
                wp_die( __('The e-mail could not be sent.') . "<br />n" . __('Possible reason: your host may have disabled the mail() function...') );
                return array( 'result' => true ); }

                add_action( 'rest_api_init', function () {
                register_rest_route( 'apiuser/v1', '/forgotpwd/(?P<email>S+)', array(
                'methods' => 'GET',
                'callback' => 'runRetrivePassword'
                ) );


                } );







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 20 at 11:41









                Clever AlmeidaClever Almeida

                570820




                570820
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53981138%2fhow-to-reset-user-password-by-wordpress-rest-api%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Callistus III

                    Ostreoida

                    Index Sanctorum