فرزاد عامری
2 سال پیش توسط فرزاد عامری مطرح شد
9 پاسخ

ریدایرکت صفحه

سلام خسته نباشید
من میخوام وقتی کاربر لایگن کرده مستقیم به صفحه مدنظر بره اما تو تنظیمات دیجیتس چیزی با این عنوان ندیدمممنون میشم راهنمایی کنید
@FullStack @mrahmadi @ossvahid @magicaldev1 @


ثبت پرسش جدید
oss_vahid
تخصص : wp developer
@ossvahid 2 سال پیش مطرح شد
0

خب اول از طریق دوتا تابعی که بالا بهت گفتی چک میکنی کابر لاگین کرده یا نه سپس
ی درون شرط ی گلوبال میزنی بنام pagenow این متغییر آدرس صفحه کنونی رو پیدا میکنه
مثلا اگه کاربر در صفحه خانه سایت باشه home.php رو برمیگردونه

global $pagenow

کد بالا دقیقا آدرسی رو بر میگردونه که کاربر درون اون صفحه هستش مثلا ی شرط بزار اگه لاگین بود و داخل فلان صفحه هم بود ری دایرکت بشه

با هوک wp_loaded تست کن ببین میشه


oss_vahid
تخصص : wp developer
@ossvahid 2 سال پیش مطرح شد
0

سلام من با

wp_redirect 

کار کردم خیلی درست و حسابی کار نمی‌کرد البته برای پلاگین استفاده‌ کردم

من از جاوااسکریپت استفاده میکنم و خوب کار میکنه

window.location = 'pageurl';

اگه میخای چک کتی کاربر لاگین کرده از

is_user_logged_in() 

یا

get_current_user_id()

فرزاد عامری
تخصص : وردپرس
@Farzadameri 2 سال پیش مطرح شد
0

@ossvahid
ممنون میشم راهنمایی کنی اینو کجا قرار بدم و چیکار کنم که اگه مثلا کاربر خواست بره به صفحه x اگه لاگین بود به صفحه y ریدایرکت بسه


oss_vahid
تخصص : wp developer
@ossvahid 2 سال پیش مطرح شد
0

خب اول از طریق دوتا تابعی که بالا بهت گفتی چک میکنی کابر لاگین کرده یا نه سپس
ی درون شرط ی گلوبال میزنی بنام pagenow این متغییر آدرس صفحه کنونی رو پیدا میکنه
مثلا اگه کاربر در صفحه خانه سایت باشه home.php رو برمیگردونه

global $pagenow

کد بالا دقیقا آدرسی رو بر میگردونه که کاربر درون اون صفحه هستش مثلا ی شرط بزار اگه لاگین بود و داخل فلان صفحه هم بود ری دایرکت بشه

با هوک wp_loaded تست کن ببین میشه


فرزاد عامری
تخصص : وردپرس
@Farzadameri 2 سال پیش مطرح شد
0

@ossvahid
دوست عزیز ممنون از راهنماییت
من این کد رو نوشتم

if (!is_user_logged_in() && is_page('x')) {
   wp_redirect(get_permalink('g'));
   exit;
}

ولی با ارور زیر مواجه میشم
مشاهده


oss_vahid
تخصص : wp developer
@ossvahid 2 سال پیش مطرح شد
0

کوکی هارو پاک کن کش هم خالی کن ببین درست میشه بجای

Wp_redirect

از

window.location = 'pageurl'

قسمت

get_permalink('g')

برام نامفهوم هستش من اینطوری مینویسم

site_url().'/login' 

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


oss_vahid
تخصص : wp developer
@ossvahid 2 سال پیش مطرح شد
0

زمانی که سایت در یک حلقه تغییر مسیر گیر کند، خطای "too many redirects" در وردپرس رخ می دهد. اگرچه مشکل ممکن است ناامید کننده باشد، باید بتوانید آن را خیلی سریع حل کنید. معمولاً می‌توانید با پاک کردن حافظه پنهان یا کوکی‌ها، خطا را برطرف کنید


فرزاد عامری
تخصص : وردپرس
@Farzadameri 2 سال پیش مطرح شد
0

@ossvahid
دوست عزیز
من یه صفحه دارم که فرم ورود داخلش هست ، به آدرس my.example.com و یک صفحه دارم که پنل کاربری داخلش هست به آدرس my.example.com/panel حالا میخوام اگه کاربر لاگین بود نتونه صفحه ورود ببینه و مستقیم به my.example.com/panel فرستاده بشه
یا اگه لاگین نبود نتونه صفحه پنل کاربری ببینه و به صفحه ورود فرستاده بشه


oss_vahid
تخصص : wp developer
@ossvahid 2 سال پیش مطرح شد
0

این تابع رو تست کن

function redirect($url)
{
    if (!headers_sent()){
        header("Location: $url");
    }else{
        echo "<script type='text/javascript'>window.location.href='$url'</script>";
        echo "<noscript><meta http-equiv='refresh' content='0;url=$url'/></noscript>";
    }
    exit;
} 

این فیلتر هم شاید بدردت بخوره

function my_login_redirect( $url, $request, $user ) {
    if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
        if ( $user->has_cap( 'administrator' ) ) {
            $url = admin_url();
        } else {
            $url = home_url( '/members-only/' );
        }
    }
    return $url;
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

داخل قسمت های if شرط مورد نظرت رو بزار ببین کار میکنه 🤔


MagicalDev
تخصص : Laravel Developer
@magicaldev1 2 سال پیش مطرح شد
1

درود
با استفاده از این مقدار هم میشه کاربر رو به صفحه ای انتقال داد

header("Location: Page");

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام