فرض کنید میخواهیم کاربر پس از ورود یا لاگین موفق در وردپرس با اکانت وکامرس خود به جای هدایت به صفحه حساب کاربری به صفحه دیگری منتقل شود.مثلا به جای حساب کاربری به صفحه خانگی برود.
کد انتقال کاربر پس از لاگین به ووکامرس به صفحه دیگر
بیشتر قالب های وردپرسی دارای افزونه ووکامرس هستند و کاربر با ورد به حساب وردپرس خود در واقع روی بخش حساب کاربری ووکامرس وارد شده است مخصوصا اگر سایت فروشگاهی باشد.حال میخواهیم کدی داشته باشیم تا بدون نیاز به افزونه ریدایرکت یا همان مسیر جاری را تغییر دهیم.
روش اول
قطعه کدهای زیر را در بخش functions.php وردپرس خود وارد کنید :
قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.
//redirect after login add_filter('woocommerce_login_redirect', 'wc_login_redirect'); function wc_login_redirect( $redirect_to ) { $redirect_to = 'https://platformboy.com/whats-new/'; return $redirect_to; }
به جای ادرس سایت platformboy آدرس موردنظر خود را وارد کنید.
روش دوم
/* * goes in theme functions.php or a custom plugin * * By default login goes to my account **/ add_filter('woocommerce_login_widget_redirect', 'custom_login_redirect'); function custom_login_redirect( $redirect_to ) { $redirect_to = 'http://anypage.com'; }
روش سوم
add_action('wp_logout','go_home'); function go_home(){ wp_redirect( home_url() ); exit(); }
روش چهارم
//Redirect users to custom URL based on their role after login function wp_woo_custom_redirect( $redirect, $user ) { // Get the first of all the roles assigned to the user $role = $user->roles[0]; $dashboard = admin_url(); $myaccount = get_permalink( wc_get_page_id( 'my-account' ) ); if( $role == 'administrator' ) { //Redirect administrators to the dashboard $admin_redirect = get_option('admin_redirect'); $redirect = $admin_redirect; } elseif ( $role == 'shop-manager' ) { //Redirect shop managers to the dashboard $shop_manager_redirect = get_option('shop_manager_redirect'); $redirect = $shop_manager_redirect; } elseif ( $role == 'customer' || $role == 'subscriber' ) { //Redirect customers and subscribers to the "My Account" page $customer_redirect = get_option('customer_redirect'); $redirect = $customer_redirect; } else { //Redirect any other role to the previous visited page or, if not available, to the home $redirect = wp_get_referer() ? wp_get_referer() : home_url(); } return $redirect; } add_filter( 'woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2 );