Redirect về trang cũ sau khi đăng nhập trong WooCommerce.
Bạn có để ý mỗi lần đăng nhập tài khoản trên các sàn thương mại điện tử như Shopee, Lazada, Tiki… bạn sẽ được redirect về trang cũ (ví dụ một sản phẩm nào đó mà bạn đang xem ngay trước thời điểm đăng nhập) không? Điều này giúp trải nghiệm mua sắm của bạn không bị gián đoạn (nghĩa là bạn không phải mất công tìm lại sản phẩm đó một lần nữa). Nếu bạn muốn tích hợp tính năng tương tự như vậy cho website bán hàng bằng WooCommerce của mình thì bài viết hôm nay là dành cho bạn.
Tham khảo thêm:
Redirect về trang cũ sau khi đăng nhập
Theo mặc định, bạn sẽ được chuyển hướng về trang Tài khoản (My Account) sau khi đăng nhập trên WooCommerce. Để tự động chuyển hướng về trang đang truy cập trước đó, chúng ta sẽ cần can thiệp bằng code.
Tất cả những gì các bạn cần làm là chèn đoạn code sau đây vào file functions.php
của theme hoặc child theme mà bạn đang sử dụng. Các bạn cũng có thể sử dụng plugin Code Snippets để chèn nhằm tránh nó bị xóa mất khi cập nhật theme.
//* Redirect users to their previous page
function wpcb_capture_referrer_url_for_auth() {
if ( isset( $_SERVER['HTTP_REFERER'] ) && !empty( $_SERVER['HTTP_REFERER'] ) && !strstr( $_SERVER['HTTP_REFERER'], 'my-account' ) ) {
set_transient( 'auth_referrer_url', esc_url( $_SERVER['HTTP_REFERER'] ), 60 * 60 * 24 );
}
}</p>
<p>add_action( 'woocommerce_before_customer_login_form', 'wpcb_capture_referrer_url_for_auth' );
add_action( 'woocommerce_register_form', 'wpcb_capture_referrer_url_for_auth' );</p>
<p>add_filter( 'woocommerce_login_redirect', 'wpcb_redirect_after_login_to_referrer', 10, 2 );
function wpcb_redirect_after_login_to_referrer( $redirect, $user ) {
$referrer_url = get_transient( 'auth_referrer_url' );
if ( $referrer_url ) {
delete_transient( 'auth_referrer_url' );
return $referrer_url;
}
return $redirect;
}</p>
<p>add_filter( 'woocommerce_registration_redirect', 'wpcb_redirect_after_registration_to_referrer' );
function wpcb_redirect_after_registration_to_referrer( $redirect ) {
$referrer_url = get_transient( 'auth_referrer_url' );
if ( $referrer_url ) {
delete_transient( 'auth_referrer_url' );
return $referrer_url;
}
return $redirect;
}
Ở dòng code số 3, nhớ thay my-account
bằng slug trang tài khoản của bạn. Ví dụ nếu nó là domain.com/tai-khoan
thì các bạn điền tai-khoan
.
Lưu lại, xóa cache và kiểm tra kết quả. Thật đơn giản phải không nào? Chúc các bạn thành công!
Bạn biết giải pháp đơn giản và hiệu quả hơn giúp redirect về trang cũ sau khi đăng nhập trong WooCommerce? Hãy chia sẻ nó với chúng tôi thông qua khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
Ko hiểu sao khi mình soạn nội dung bài viết sản phẩm thì có cái thanh công cụ với nội dung “Chỉnh sửa sản phẩm
Hoạt động
Hoàn tất cài đặt”
nó gim lên trên đầu bài viết sản phẩm đó mà ko biết cách nào để cho nó mất tính năng gim này vì làm che mất Editor Toolbar.
Bạn tham khảo bài viết “Tinh giản WooCommerce giúp website của bạn nhẹ hơn” nhé.
Cảm ơn bạn nha, mà cho hỏi chút mình muốn thay tên mình là Bình Minh bằng tên Máy Nhổ Lông Măng Vịt Cầm Tay thì có được ko nhỉ, web mình là maynholongvit.com.vn. Bạn có quy định việc sử dụng tên người bình luận nhưng mình ko đặt trùng với tên miền thì có được ko bạn?
Theo quy định là không được. Nhưng nếu comment có giá trị thì vẫn được châm chước nhé.
Ok bạn