{"id":29223,"date":"2021-06-07T11:37:00","date_gmt":"2021-06-07T08:37:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29223"},"modified":"2021-10-17T04:24:07","modified_gmt":"2021-10-17T01:24:07","slug":"logga-in-med-telefonnummer-pa-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/logga-in-med-telefonnummer-pa-wordpress\/","title":{"rendered":"Logga in med telefonnummer p\u00e5 WordPress"},"content":{"rendered":"<p>Du kanske har placerat ett inloggningsformul\u00e4r p\u00e5 din WordPress-webbplats. Och du vill till\u00e5ta anv\u00e4ndare att logga in med sitt telefonnummer eller med anv\u00e4ndarnamn \/ e-post. I grund och botten till\u00e5ter du anv\u00e4ndare att ange n\u00e5gon av posterna fr\u00e5n anv\u00e4ndarnamn \/ e-post \/ telefon och ett l\u00f6senord.<\/p>\n<p>Observera, denna handledning har inte f\u00f6r avsikt att visa inloggning med OTP. Ist\u00e4llet ska jag l\u00e4gga till ytterligare ett alternativ f\u00f6r telefonnummer tillsammans med anv\u00e4ndarnamn och e-post. S\u00e5 dina anv\u00e4ndare kan v\u00e4lja vilket alternativ som helst som passar dem. Du s\u00e5g antagligen detta alternativ p\u00e5 Amazon. Amazon till\u00e5ter oss att logga in med antingen e-post eller mobilnummer.<\/p>\n<p>Jag ska skapa ett enkelt inloggningsformul\u00e4r. P\u00e5 formul\u00e4ret skicka kommer vi att skriva en kod som kontrollerar referenser i bakgrunden f\u00f6r alla 3 alternativen (Anv\u00e4ndarnamn \/ E-post \/ telefon) och ett l\u00f6senord.<\/p>\n<p>F\u00f6r att l\u00e4gga till ett telefonnummer i ett inloggningsformul\u00e4r, ska du infoga ett anv\u00e4ndares telefonnummer i tabellen &#8217;wp_usermeta&#8217;. Du kan g\u00f6ra det vid tidpunkten f\u00f6r anv\u00e4ndarregistreringen. Koden nedan kan anv\u00e4ndas f\u00f6r att l\u00e4gga till ett telefonnummer till en anv\u00e4ndare.<\/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>N\u00e4r du v\u00e4l har meta_key &#8217;user_phone&#8217; tillsammans med dess v\u00e4rde i databasen kan du l\u00e4gga till inloggning med alternativet telefonnummer i ett inloggningsformul\u00e4r. L\u00e5t oss l\u00e4gga till f\u00f6ljande inloggningsformul\u00e4r p\u00e5 din inloggningssida.<\/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>I ovanst\u00e5ende kod s\u00f6ker vi efter fel och skriver ut dem. Vi kommer att skriva kod f\u00f6r hantering av fel i n\u00e4sta steg. Dessutom lade vi till en nonce i formul\u00e4ret som \u00e4r det rekommenderade s\u00e4ttet att bearbeta formul\u00e4r i WordPress.<\/p>\n<h3>Logga in med telefonnummer p\u00e5 WordPress<\/h3>\n<p>N\u00e4r en anv\u00e4ndare fyller in referenser och trycker p\u00e5 en skicka-knapp tar vi referenserna och verifierar dem mot databasen. Om uppgifterna \u00e4r korrekta loggar vi in \u200b\u200banv\u00e4ndaren och omdirigerar den till hemsidan. Vid fel autentiseringsuppgifter loggas fel med <code>WP_Error<\/code>klass.<\/p>\n<p>S\u00e5 skriv koden nedan i <code>functions.php<\/code>filen som behandlar inloggningsformul\u00e4ret.<\/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>H\u00e4r verifierade vi f\u00f6rst nonce f\u00f6r att skydda v\u00e5r form fr\u00e5n vissa typer av missbruk, skadlig kod och CSRF-attacker. D\u00e4refter s\u00f6ker det efter giltig e-post och telefonnummer baserat p\u00e5 <code>is_email()<\/code>eller <code>is_numeric()<\/code>metod. Om det angivna v\u00e4rdet inte \u00e4r ett e-postmeddelande eller en telefon, g\u00e5r vi efter anv\u00e4ndarnamn. Om uppgifterna \u00e4r uppfyllda loggar anv\u00e4ndarna in i systemet och omdirigerar till hemsidan. I ditt fall kan du omdirigera anv\u00e4ndare till en annan sida enligt ditt fl\u00f6de.<\/p>\n<p>Jag hoppas att du f\u00f6rst\u00e5r hur man integrerar inloggning med ett telefonnummer i WordPress. Dela dina tankar och f\u00f6rslag i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/ladda-dynamiskt-innehall-pa-bootstrap-modal-i-wordpress\/\" title=\"Ladda dynamiskt inneh\u00e5ll p\u00e5 Bootstrap Modal i WordPress\" >Ladda dynamiskt inneh\u00e5ll p\u00e5 Bootstrap Modal i WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-bygger-anpassad-elementor-widget\/\" title=\"Hur man bygger anpassad Elementor-widget\" >Hur man bygger anpassad Elementor-widget<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/sa-har-lagger-du-till-anpassade-slutpunkter-till-wordpress-api\/\" title=\"S\u00e5 h\u00e4r l\u00e4gger du till anpassade slutpunkter till WordPress API\" >S\u00e5 h\u00e4r l\u00e4gger du till anpassade slutpunkter till WordPress API<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r artikeln studerar vi hur man integrerar inloggning med telefonnummer i WordPress. Ibland \u00e4r det ett bekv\u00e4mt alternativ f\u00f6r dina anv\u00e4ndare. Amazon<\/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":[614],"tags":[850],"class_list":["post-29223","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=29223"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29223\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/20317"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=29223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=29223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=29223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}