4 پست در این موضوع قرار دارد

سلام. من یک سایت وردپرسی دارم به آدرس site1.com که بالای تمام صفحاتش ورود و عضویت داره. و اگر کسی در سایت لاگین شد، بالای تمام صفحات به جای ورود و عضویت می نویسه "حساب کاربری"

حالا من میخوام امکان ورود و عضویت در سایت site1.com رو غیر فعال کنم و اطلاعات کاربران از سایت دومی که دارم به آدرس site2.com فراخوانی شود.

یعنی این موارد اتفاق بیفتد:

اگر کسی در سایت site1.com لاگین شد، در واقع در site2.com لاگین شده باشد.

اگر کسی در سایت site1.com ثبت نام کرد، در واقع در site2.com ثبت نام کرده باشد.

اگر کسی در سایت site2.com لاگین شد، در بالای تمام صفحات site1.com به جای ورود و عضویت، نوشته بشود "حساب کاربری"

و با کلیک بر حساب کاربری، به حساب کاربری site2.com راهنمایی شود.

توجه داشته باشید که سایت site1.com اصلا نباید امکان ورود و عضویت داشته باشد و فقط یک سایت وبلاگی ساده است که اصلا نیازی نیست کسی در آن ثبت نام کند. چون حتی قابلیت کامنت گذاشتن هم ندارد. اما سایت site2.com فروشگاهی است و باید حساب کاربری و ورود و عضویت داشته باشد. در واقع من میخواهم فیلد ورود و عضویت که در بالای صفحه سایت site1.com تمام اطلاعاتش از سایت site2.com فراخوانی شود.

ببخشید طولانی شد.

ویرایش شده در توسط mehdinjm
0

به اشتراک گذاری این پست


لینک به پست

سلام .

یه کم الگوریتم رو برای خودت پیجیده کردی احتمالا

دقیقا واسه روش شما افزونه ای نیست

اگه قرار هست یه وبلاگ و یه فروشگاه باشه که می تونی توی یک دامنه این کار رو انجام بدی و خیلی راحت تر هست همچنین معقول تر

پیشنهاد میکنم در صورت امکان کل ایده سایتت رو شرح بدی که دقیقا چی میخوای پیاده سازی کنی تا راه حل بهتری برات ارائه بشه

موفق باشید

0

به اشتراک گذاری این پست


لینک به پست
در 23 ساعت قبل، majidchamran گفته است :

سلام .

یه کم الگوریتم رو برای خودت پیجیده کردی احتمالا

دقیقا واسه روش شما افزونه ای نیست

اگه قرار هست یه وبلاگ و یه فروشگاه باشه که می تونی توی یک دامنه این کار رو انجام بدی و خیلی راحت تر هست همچنین معقول تر

پیشنهاد میکنم در صورت امکان کل ایده سایتت رو شرح بدی که دقیقا چی میخوای پیاده سازی کنی تا راه حل بهتری برات ارائه بشه

موفق باشید

اوکی ببین من در هاستم دو تا وردپرس سوار کردم. دلیلش هم اینه که وردپرس اولی که آدرس DOMAIN.COM هست حتما باید دیتابیسش از وردپرس دوم که در ساب دایرکتوری DOMAIN.COM/SHOP هست جدا باشه. حالا چرا باید اینجوری باشه؟ چون داخل وردپرس DOMAIN.COM/SHOP چند افزونه خیلی سنگین مثل Multi Vendor و Affiliate و پنل تیکت و ... سواره که تصمیم گرفتم که دیتابیس وبلاگم که آدرسش DOMAIN.COM هست از فروشگاهم جدا باشه.

من برای وبلاگم که DOMAIN.COM هست نهایت سبکی رو در نظر گرفتم. نه کسی میتونه توش ثبت نام کنه. نه پلاگین سنگینی روش نصبه. حتی گراواتار هم غیر فعال کردم.

وقتی این دو تا دیتابیسشون جدا باشند

خب این ایده ی سایت من بود که فرمودید بهتون شرح بدم.

حالا من میخوام یک حرکت انجام بدم. وقتی عضویت در سایت DOMAIN.COM رو غیر فعال کردم. بالای قالب سایت DOMAIN.COM خب عضویت و ورود داره. یک حرکتی که میتونم انجام بدم اینه که برم تو کد های قالب و به جای لینک عضویت و ورود DOMAIN.COM بیام لینک عضویت و ورود DOMAIN.COM/SHOP رو بزارم. این خب یه حرکت خیلی راحته.

ولی میدونه مشکلش چیه؟ مشکلش اینه اگه دقت کنی مثلا تو سایت وردپرسی وقتی لاگین میشی دیگه بالای سایت نمیزنه ورود و ثبت نام. بعد لاگین شدن مثلا مینویسه حساب کاربری یا مینویسه پیشخوان یا مثل این سایت مینویسه majidcharman . 

من در واقع میخوام فیلد بالای قالب DOMAIN.COM که ورود و عضویت هست، اطلاعاتش از سایت DOMAIN.COM/SHOP فراخوانی بشه. یعنی مثلا یه تغییراتی تو کدهای قالب کرد که اینجوری بشه.

فرض کن من اینجا کد یک ویدیو از آپارات رو بزارم. خب هر تغییری که تو ویدئو تو سایت آپارات اعمال بشه اینجا هم اعمال میشه دیگه. همین کارو میخوام به جای کد ورود و ثبت نام قالب DOMAIN.COM بیام کد سایت DOMAIN.COM/SHOP رو بزارم.

خیلی طولانی شد. فط فرمودید توضیح بده انقدر توضیح دادم

0

به اشتراک گذاری این پست


لینک به پست

میتونی یه حرکتی بزنی البته پلاگینی براش نیست باید کدنویسی کنی
هر کاربری که تو سایت اول ساخته میشه یه یوزر با پسورد مثلا 123456 تو سایت دوم ساخته بشه وقتی کاربر رو لینک بلاگ کلیک میکنه یوزر کاربر به صورت query string به سایت دوم ارسال میشه و اونجا با استفاده از تابع   wp_signonمیتونی کاربر رو لاگین کنی

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط nikanrayan
      سلام
      من میخوام تو ی قسمت از پنل کاربریم یه فیچر رو تغییر نام بدم
      یعنی میخوام گاراژها رو به طبقات تغییر بدم
      از قسمت ترجمه ها تغییر دادن نشد. تا جایی که من رفتم جلو
      با inspect گوگل كروم يا فايرفاكس سرچ ميكنم يه آدرس ميده كه ميرم اونجا همچین کدی وجود نداره
      و در آخر اینکه تو عکس زیر دورش خط کشیدم میخوام اسمشون رو تغییر بدم و دو تا فیلد دیگه هم اضافه کنم بهش.
      ممنون

    • توسط arjmand
      سلام دوستان وقت بخیر
      من هاستم رو از هاست لینوکس به هاست وردپرس تغییر دادم
      است قبلی من از فقط از نسخه 5.6 PHP پشتیبانی میکرد
      در هاست جدید نسخه 7.2 PHP موجود هست اما وقتی ورژن PHP هاست رو روی 7.2 قرار میدم سایت ارور "این سایت مشکل فنی را تجربه میکند" رو نمایش میده
      با پشتیبان هاستم صحبت کردم گفت برای اینکه بتونی از نسخه 7.2 استفاده کنی باید تمام پلاگین هات و قالبت بروز بشن
      من پلاگین ها رو زدم بروزرسانی اما بعضی هاشون ارور دادن و بروز نشدن ارور  قرمز رنگ "این سایت مشکل فنی را تجربه میکند"
      بعد از بروز رسانی پلاگین ها دیگ بخش پیشخوان سایت بالا نمیاد و همون ارور رو میده .اما خود سایت بالا میاد و لود میشه 
      نسخه PHP رو که روی 7.2 قرار میدم دیگ سایت هم مثل پیشخوان ارور میده و بالا نمیاد
      الان نسخه PHP هاست بر روی 5.6 هست و سایت بالا میاد ولی بخش پیشخوان همچنان ارور میده
      ایمیلی هم برام ارسال نمیشه برای رفع مشکل.
      کسی هست بتونه راهنمایی کنه جهت رفع مشکل !!!؟
      با تشکر.
    • توسط ariux
      سلام دوستان ، من با استفاده از این مقاله اقدام به تعبیه ورود و ثبت نام در سایتم کردم ، اما با مشکلی رو به رو شدم .
      مشکل در واقع این هستش که فرم به خوبی کار میکنه و کاربر ورود ؛ و یا ثبت نام رو انجام میده اما صفحه به صورت اتوماتیک ری لود / ری فرش نمیشه تا اطلاعات کاربر لاگین شده رو نمایش بده .
      البته بعد از ری فرش صفحه توسط بروزر اطلاعات کاربر نمایش داده میشه اما مشکل همینجاست که ری لود باید اتوماتیک انجام بشه و نه توسط کاربر . 
      مورد عجیب اما این هستش که تمام مواردی که عرض کردم روی سایت آنلاین بروز پیدا میکنه و روی نسخه لوکال که توسط wamp ایجاد شده ، تمام موارد بدون کوچکترین مشکلی کار میکنند و جواب میدهند .
      این کدهایی هستش که بنده کمی شخصی سازیشون کردم اینجا قرار میدم ، امیدوارم دوستی بتونه کمک بکنه 
       
      function auth_user_login($user_login, $password, $login) { $info = array(); $info['user_login'] = $user_login; $info['user_password'] = $password; $info['remember'] = (isset( $_POST['rememberme'] ) && true == $_POST['rememberme'] ? true : false); $userdata = get_user_by('login', $info['user_login']); $result = wp_check_password($info['user_password'], $userdata->data->user_pass, $userdata->data->ID); if ( $result ) { auto_login( $userdata ); echo json_encode(array('loggedin'=>true, 'message'=>__('ورود موفقیت امیز بود ، در حال بارگذاری'))); } else { echo json_encode(array('loggedin'=>false, 'message'=>__(' اطلاعات وارد شده نادرست می باشد! '))); } die(); } function auto_login( $user ) { if ( !is_user_logged_in() ) { $user_id = $user->data->ID; $user_login = $user->data->user_login; wp_set_current_user( $user_id, $user_login ); wp_set_auth_cookie( $user_id ); } }  
      jQuery(document).ready(function ($) { // Display form from link inside a popup $('#pop_login, #pop_signup').on('click', function (e) { formToFadeOut = $('form#register'); formtoFadeIn = $('form#login'); if ($(this).attr('id') == 'pop_signup') { formToFadeOut = $('form#login'); formtoFadeIn = $('form#register'); } formToFadeOut.fadeOut(100, function () { formtoFadeIn.fadeIn(); }) return false; }); // Display lost password form $('#pop_forgot').click(function(){ formToFadeOut = $('form#login'); formtoFadeIn = $('form#forgot_password'); formToFadeOut.fadeOut(100, function () { formtoFadeIn.fadeIn(); }) return false; }); // Close popup $(document).on('click', '.close-any, .close', function () { $('form#login, form#register, form#forgot_password').fadeOut(100, function () { $('.close-any').remove(); }); return false; }); // Show the login/signup popup on click $('#show_login, #show_signup').on('click', function (e) { $('[canvas]').prepend('<div class="close-any"></div>'); if ($(this).attr('id') == 'show_login') $('form#login').fadeIn(100); else $('form#register').fadeIn(100); e.preventDefault(); }); // Perform AJAX login/register on form submit $('form#login, form#register').on('submit', function (e) { if (!$(this).valid()) return false; $('p.status', this).show().text(auth_script_object.loadingmessage); action = 'ajaxlogin'; username = $('form#login #username').val(); firstName = ''; lastName = ''; rememberme = ''; email = ''; password = $('form#login #password').val(); security = $('form#login #security').val(); if ($(this).attr('id') == 'register') { action = 'ajaxregister'; username = $('#signonname').val(); firstName = $('#signonfirstname').val(); lastName = $('#signonlastname').val(); password = $('#signonpassword').val(); email = $('#email').val(); security = $('#signonsecurity').val(); } ctrl = $(this); $.ajax({ type: 'POST', dataType: 'json', url: auth_script_object.ajaxurl, data: { 'action': action, 'username': username, 'password': password, 'email': email, 'firstName': firstName, 'lastName': lastName, 'security': security }, success: function (data) { $('p.status', ctrl).text(data.message); if (data.loggedin == true) { document.location.href = auth_script_object.redirecturl; window.location.reload(true); } } }); e.preventDefault(); }); // Perform AJAX forget password on form submit $('form#forgot_password').on('submit', function (e) { if (!$(this).valid()) return false; $('p.status', this).show().text(auth_script_object.loadingmessage); ctrl = $(this); $.ajax({ type: 'POST', dataType: 'json', url: auth_script_object.ajaxurl, data: { 'action': 'ajaxforgotpassword', 'user_login': $('#user_login').val(), 'security': $('#forgotsecurity').val(), }, success: function (data) { $('p.status', ctrl).text(data.message); } }); e.preventDefault(); return false; }); // Client side form validation if ($("#register").length) $("#register").validate( { rules: { password2: { equalTo: '#signonpassword' } } } ); else if ($("#login").length) $("#login").validate(); if ($('#forgot_password').length) $('#forgot_password').validate(); });  
      ممنون از شما
    • توسط m3hdigh
      سلام و وقت بخیر ،
      بنده یک قالب آماده خریداری کرده ام برای آموزش آنلاین LMS . یک سرویس ارسال sms هم از کاوه نگار باری احراز هویت خریداری کرده ام . ثبت نام و ورود در دوره ها با استفاده از یک پلاگین انجام میشه . که من در قسمت account اون رو به طور کل پاک کردم و تغییر دادم ( قسمت عضویت در سایت )
      در حال حاضر یکسری مشکلات برای چک کردن اعضای ثبت نام شده دارم و همچنین فراموشی رمز عبور .
      ممنون میشم اگر کمکم کنید .
      صفحه عضویت
       
      <h2 class="registerFormTitle">ثبت نام</h2> <div class="AuthWithMobile"> <form action="#" method="post" id="AuthWithMobileForm"> <label>کد ارسال شده خود را وارد نمایید.</label> <input type="hidden" name="AuthCodeDefault" id="AuthCodeDefault"> <input type="text" class="isNumberic" name="AuthMobileCode" id="AuthMobileCode" placeholder="کد احراز هویت" maxlength="4"> <input type="submit" class="btn btn-default" id="SumbitAuthMobile" value="احراز هویت"> </form> </div> <form action="#" method="post" id="SignUpForm"> <div class="form-group"> <label for="register_first_name">نام</label> <input type="text" name="register_first_name" id="register_first_name" > </div> <div class="form-group"> <label for="register_last_name">نام خانوادگی</label> <input type="text" name="register_last_name" id="register_last_name" > </div> <div class="form-group"> <label for="register_mobile">شماره موبایل</label> <input type="text" name="register_mobile" class="isNumberic" id="register_mobile" maxlength="11"> </div> <div class="form-group"> <label for="register_first_name">کلمه عبور</label> <input type="password" name="register_password" id="register_password" > </div> <input type="submit" class="btn btn-default" id="SubmitRegisterForm" value="ثبت نام"> </form>  
      javascript
      function AuthMobile(){ var ajaxurl = "/wp-admin/admin-ajax.php"; var register_mobile = jQuery("form#SignUpForm #register_mobile").val(); jQuery.ajax({ type: 'POST', dataType: 'json', url: ajaxurl, data: { 'action' : 'exir_danesh_Auth_With_Mobile', 'mobile' : register_mobile, }, success: function (data) { if (data.status !== 'true' ) { jQuery(".AuthWithMobile").show(); jQuery("#AuthCodeDefault").val(data.auth_code); return true; return true; }else{ alert("کلمه عبور وارد شده اشتباه می باشد."); } }, error: function (errorThrown) { } }); } jQuery(document).ready(function () { jQuery("#AuthWithMobileForm").submit(function (e) { e.preventDefault(); var auth_code = jQuery("#AuthMobileCode").val(); auth_code = + auth_code * 3781; var Current_auth_code = jQuery("#AuthCodeDefault").val(); if(auth_code.length < 4){ jQuery("form#AuthWithMobileForm #AuthWithMobileForm").css("border","1px solid #ff0035"); return false; } else{ jQuery("form#AuthWithMobileForm #AuthWithMobileForm").removeAttr("style"); } if(auth_code == Current_auth_code){ var ajaxurl = "/wp-admin/admin-ajax.php"; var register_first_name = jQuery("form#SignUpForm #register_first_name").val(); var register_last_name = jQuery("form#SignUpForm #register_last_name").val(); var register_mobile = jQuery("form#SignUpForm #register_mobile").val(); var register_password = jQuery("form#SignUpForm #register_password").val(); jQuery.ajax({ type: 'POST', dataType: 'json', url: ajaxurl, data: { 'action' : 'exir_danesh_SignUpWith_mobile', 'user_name' : register_mobile, 'user_password' : register_password , 'user_first_name' : register_first_name , 'user_last_name' : register_last_name , }, success: function (data) { if (data.status) { // $(".SignUpMobile#AlertAjax").hide(); // $("form#SignUpForm #SignUpBtn").val(data.message); window.location.reload(); }else{ window.location.reload(); } }, error: function (errorThrown) { window.location.reload(); } }); } else{ jQuery("form#AuthWithMobileForm #AuthWithMobileForm").css("border","1px solid #ff0035"); alert("error"); } }) jQuery("body .isNumberic").on("keypress keyup blur",function () { jQuery(this).val(jQuery(this).val().replace(/[^\d].+/, "")); if ((event.which < 48 || event.which > 57)) { event.preventDefault(); } if(jQuery(this).val() == ""){jQuery(this).val()} }); jQuery("form#SignUpForm").submit(function (e) { e.preventDefault(); var register_first_name = jQuery("form#SignUpForm #register_first_name").val(); var register_last_name = jQuery("form#SignUpForm #register_last_name").val(); var register_mobile = jQuery("form#SignUpForm #register_mobile").val(); var register_password = jQuery("form#SignUpForm #register_password").val(); if(register_first_name.length < 3){ jQuery("form#SignUpForm #register_first_name").css("border","1px solid #ff0035"); return false; } else{ jQuery("form#SignUpForm #register_first_name").removeAttr("style"); } if(register_last_name.length < 3){ jQuery("form#SignUpForm #register_last_name").css("border","1px solid #ff0035"); return false; } else{ jQuery("form#SignUpForm #register_last_name").removeAttr("style"); } if(register_mobile.length < 11){ jQuery("form#SignUpForm #register_mobile").css("border","1px solid #ff0035"); return false; } else{ jQuery("form#SignUpForm #register_mobile").removeAttr("style"); } if(register_password.length < 8){ jQuery("form#SignUpForm #register_password").css("border","1px solid #ff0035"); return false; } else{ jQuery("form#SignUpForm #register_password").removeAttr("style"); } if(AuthMobile()){ return true; } else{ return false; } }); });  
      sms.php
       
      <?php function CurlSend($request,$params,$result = false){ // Generate curl request $session = curl_init($request); // Tell curl to use HTTP POST curl_setopt ($session, CURLOPT_POST, true); // Tell curl that this is the body of the POST curl_setopt ($session, CURLOPT_POSTFIELDS, $params); // Tell curl not to return headers, but do return the response curl_setopt($session, CURLOPT_HEADER, false); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // obtain response $response = curl_exec($session); curl_close($session); // print everything out if($result){ return true; } } add_action( 'wp_ajax_exir_danesh_Auth_With_Mobile', 'exir_danesh_Auth_With_Mobile' ); add_action( 'wp_ajax_nopriv_exir_danesh_Auth_With_Mobile', 'exir_danesh_Auth_With_Mobile' ); if( !function_exists('exir_danesh_Auth_With_Mobile') ): function exir_danesh_Auth_With_Mobile(){ $mobile = sanitize_text_field($_POST['mobile']); $message = rand(1000,9999); $apiCode = "*************************************************"; $request = 'https://api.kavenegar.com/v1/'.$apiCode.'/verify/lookup.json'; $params = array(); $params['receptor'] = $mobile; $params['token'] = $message; $params['template'] = "VerifyCode"; $send_auth = CurlSend($request,$params); $code = $message * 3781; print json_encode(array("status" => true, "auth_code" => $code)); exit(); } endif; ?>  
      Function.php
      require_once get_template_directory().'/inc/ajaxcall.php'; require_once get_template_directory().'/inc/sms.php';  
      ajaxcall.php
      <?php //SignUp Mobile add_action( 'wp_ajax_exir_danesh_SignUpWith_mobile', 'exir_danesh_SignUpWith_mobile' ); add_action( 'wp_ajax_nopriv_exir_danesh_SignUpWith_mobile', 'exir_danesh_SignUpWith_mobile' ); if( !function_exists('exir_danesh_SignUpWith_mobile') ): function exir_danesh_SignUpWith_mobile(){ $user_name = sanitize_text_field($_POST['user_name']); $user_password = sanitize_text_field($_POST['user_password']); $user_first_name = sanitize_text_field($_POST['user_first_name']); $user_last_name = sanitize_text_field($_POST['user_last_name']); $user = wp_create_user($user_name,$user_password,""); update_user_meta($user,"first_name",$user_first_name); update_user_meta($user,"last_name",$user_last_name); $login = wp_signon(array("user_login" => $user_name,"user_password" => $user_password, "remember" => "true"),true); print json_encode(array('status'=>true,'message'=>"شما با موفقیت ثبت نام شدید لطفا منتظر بمانید...")); exit(); } endif; ?>  
       
    • توسط 2raj
      سلام و عرض ادب
      دوستان سایت بنده از برگه های زیادی استفاده میکنه که میخوام بعضی از این برگه ها بعد از لاگین یا ثبت نام نمایش داده بشه راهی برای اینکار هست؟
      البته توی وردپرس دیدم میشه صفحه رو رمزدار یا خصوصی کرد ولی نمیخوام صفحه رمز دار باشه و اینکه وقتی روی خصوصی هم میذارم میزنه صفحه پیدا نشد
      لطفا راهنمایی کنید