{"id":25421,"date":"2021-06-07T11:49:00","date_gmt":"2021-06-07T08:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25421"},"modified":"2021-10-18T02:33:36","modified_gmt":"2021-10-17T23:33:36","slug":"einloggen-mit-telefonnummer-in-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/einloggen-mit-telefonnummer-in-wordpress\/","title":{"rendered":"Einloggen mit Telefonnummer in WordPress"},"content":{"rendered":"<p>M\u00f6glicherweise haben Sie ein Front-End-Anmeldeformular auf Ihrer WordPress-Website platziert. Und Sie m\u00f6chten Benutzern erm\u00f6glichen, sich mit ihrer Telefonnummer oder mit Benutzername\/E-Mail anzumelden. Grunds\u00e4tzlich erlauben Sie Benutzern, einen beliebigen Eintrag aus Benutzername\/E-Mail\/Telefon und einem Passwort einzugeben.<\/p>\n<p>Bitte beachten Sie, dass dieses Tutorial nicht beabsichtigt, die Anmeldung mit OTP anzuzeigen. Stattdessen werde ich eine weitere Option f\u00fcr die Telefonnummer zusammen mit dem Benutzernamen und der E-Mail-Adresse hinzuf\u00fcgen. So k\u00f6nnen Ihre Benutzer jede f\u00fcr sie bequeme Option ausw\u00e4hlen. Sie haben diese Option wahrscheinlich bei Amazon gesehen. Amazon erm\u00f6glicht es uns, uns entweder mit E-Mail oder Handynummer anzumelden.<\/p>\n<p>Ich werde ein einfaches Login-Formular erstellen. Beim Absenden des Formulars schreiben wir einen Code, der im Hintergrund die Anmeldeinformationen f\u00fcr alle 3 Optionen (Benutzername\/E-Mail\/Telefon) und ein Passwort \u00fcberpr\u00fcft.<\/p>\n<p>Um eine Telefonnummer in einem Anmeldeformular hinzuzuf\u00fcgen, sollten Sie eine Telefonnummer eines Benutzers in die Tabelle &#8218;wp_usermeta&#8216; eingeben. Sie k\u00f6nnen dies zum Zeitpunkt der Benutzerregistrierung tun. Der folgende Code kann verwendet werden, um eine Telefonnummer eines Benutzers hinzuzuf\u00fcgen.<\/p>\n<pre><code>&lt;?php\n$user_id = 1;\n$phone_number = 9999999999;\nadd_user_meta( $user_id, 'user_phone', $phone_number);<\/code><\/pre>\n<p>Sobald Sie den meta_key &#8218;user_phone&#8216; zusammen mit seinem Wert in der Datenbank haben, k\u00f6nnen Sie sich mit der Telefonnummernoption in einem Anmeldeformular anmelden. Lassen Sie uns das folgende Anmeldeformular auf Ihrer Anmeldeseite platzieren.<\/p>\n<pre><code>&lt;?php\n$return = log_the_user_in();\nif( is_wp_error( $return)) {\n\u00a0\u00a0\u00a0\u00a0echo $return-&gt;get_error_message();\n}\n?&gt;\n&lt;form method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"user_login\" placeholder=\"Username, email or mobile\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"password\" name=\"user_password\" placeholder=\"Password\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"hidden\" name=\"login_nonce\" value=\"&lt;?php echo wp_create_nonce('login_nonce'); ?&gt;\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"login_the_user\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Im obigen Code pr\u00fcfen wir auf Fehler und drucken sie aus. In den n\u00e4chsten Schritten werden wir Code zur Behandlung von Fehlern schreiben. Au\u00dferdem haben wir dem Formular eine Nonce hinzugef\u00fcgt, die die empfohlene Methode zur Verarbeitung von Formularen in WordPress ist.<\/p>\n<h3>Einloggen mit Telefonnummer in WordPress<\/h3>\n<p>Wenn ein Benutzer Anmeldeinformationen ausf\u00fcllt und auf eine Schaltfl\u00e4che zum Senden klickt, nehmen wir die Anmeldeinformationen und \u00fcberpr\u00fcfen sie mit der Datenbank. Wenn die Zugangsdaten korrekt sind, melden wir den Benutzer an und leiten ihn auf die Startseite um. Bei falschen Zugangsdaten werden Fehler mit <code>WP_Error<\/code>Klasse protokolliert .<\/p>\n<p>Schreiben Sie also den folgenden Code in die <code>functions.php<\/code>Datei, die das Anmeldeformular verarbeitet.<\/p>\n<pre><code>&lt;?php\nadd_action( 'init', 'log_the_user_in' );\nfunction log_the_user_in() {\n\u00a0\u00a0\u00a0\u00a0if (isset( $_POST['login_the_user']) &amp;&amp; wp_verify_nonce( $_REQUEST['login_nonce'], 'login_nonce')) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! empty( $_POST['user_login']) &amp;&amp;! empty( $_POST['user_password'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (is_email( $_POST['user_login'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ check user by email\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = get_user_by( 'email', $_POST['user_login'] );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} elseif (is_numeric( $_POST['user_login'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ check user by phone number\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0global $wpdb;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$tbl_usermeta = $wpdb-&gt;prefix.'usermeta';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user_id = $wpdb-&gt;get_var( $wpdb-&gt;prepare( \"SELECT user_id FROM $tbl_usermeta WHERE meta_key=%s AND meta_value=%s\", 'user_phone', $_POST['user_login']) );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = get_user_by( 'ID', $user_id );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ check user by username\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = get_user_by( 'login', $_POST['user_login'] );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! $user) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return new WP_Error('wrong_credentials', 'Invalid credentials.');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ check the user's login with their password.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! wp_check_password( $_POST['user_password'], $user-&gt;user_pass, $user-&gt;ID)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return new WP_Error('wrong_credentials', 'Invalid credentials.');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_clear_auth_cookie();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_set_current_user($user-&gt;ID);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_set_auth_cookie($user-&gt;ID);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_redirect(get_bloginfo('url'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return new WP_Error('empty', 'Both fields are required.');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Hier haben wir zun\u00e4chst die Nonce \u00fcberpr\u00fcft, um unser Formular vor bestimmten Arten von Missbrauch, b\u00f6sartigem Code und CSRF-Angriffen zu sch\u00fctzen. Als N\u00e4chstes wird basierend auf der Methode <code>is_email()<\/code>oder <code>is_numeric()<\/code>auf g\u00fcltige E-Mail- und Telefonnummern gepr\u00fcft. Wenn der eingegebene Wert keine E-Mail oder kein Telefon ist, verwenden wir den Benutzernamen. Wenn die Anmeldeinformationen erf\u00fcllt sind, melden sich Benutzer beim System an und leiten zur Startseite um. In Ihrem Fall k\u00f6nnen Sie Benutzer gem\u00e4\u00df Ihrem Flow auf eine andere Seite umleiten.<\/p>\n<p>Ich hoffe, Sie verstehen, wie Sie die Anmeldung mit einer Telefonnummer in WordPress integrieren. Bitte teilen Sie Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/laden-sie-dynamische-inhalte-auf-bootstrap-modal-in-wordpress\/\" title=\"Laden Sie dynamische Inhalte auf Bootstrap Modal in WordPress\" >Laden Sie dynamische Inhalte auf Bootstrap Modal in WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-erstellen-sie-ein-benutzerdefiniertes-elementor-widget\/\" title=\"So erstellen Sie ein benutzerdefiniertes Elementor-Widget\" >So erstellen Sie ein benutzerdefiniertes Elementor-Widget<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-fugen-sie-benutzerdefinierte-endpunkte-zur-wordpress-api-hinzu\/\" title=\"So f\u00fcgen Sie benutzerdefinierte Endpunkte zur WordPress-API hinzu\" >So f\u00fcgen Sie benutzerdefinierte Endpunkte zur WordPress-API hinzu<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel untersuchen wir, wie Sie die Anmeldung mit der Telefonnummer in WordPress integrieren. Dies ist manchmal eine bequeme Option f\u00fcr Ihre Benutzer. Amazonas<\/p>\n","protected":false},"author":1,"featured_media":20317,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[607],"tags":[845],"class_list":["post-25421","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=25421"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25421\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/20317"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}