Nội dung tiếp thị

WordPress: Tạo mẫu trang yêu cầu người dùng phải đăng ký và đăng nhập

Chúng tôi đang hoàn tất việc triển khai một chủ đề tùy chỉnh trên trang web của khách hàng và họ yêu cầu chúng tôi xây dựng một số loại tương tác trong đó một số trang bị hạn chế đối với những người đăng ký đã đăng ký. WordPress cung cấp tùy chọn Hiển thị cho các trang nhưng điều đó không phù hợp với trường hợp này.

  • Riêng – Việc chọn chế độ hiển thị ở chế độ riêng tư chỉ cho phép quản trị viên và biên tập viên xem nội dung.
  • Mật khẩu được bảo vệ – yêu cầu một mã duy nhất được áp dụng cho mỗi trang để xem nội dung.

Lúc đầu, chúng tôi nghĩ đến việc triển khai plugin của bên thứ ba, nhưng giải pháp rất đơn giản. Chúng tôi có thể tạo một mẫu duy nhất yêu cầu người xem đăng ký và đăng nhập để xem trang.

Mẫu WordPress: Chỉ dành cho người đăng ký

Đầu tiên, chúng tôi sao chép mẫu trang của khách hàng (page.php) trong con chủ đề. Để tạo mẫu, bạn cần thêm một số mã vào đầu trang của mình:

<?php /* Template Name: Subscribers Only */ ?>

Tiếp theo, hãy tìm dòng trong mã trang của bạn hiển thị nội dung. Nó sẽ giống như thế này:

<?php the_content(); ?>

Bây giờ, bạn sẽ cần phải quấn một số mã xung quanh dòng đó:

<?php
$redirect_url = get_permalink(); // Get the current page's URL

if (is_user_logged_in()) :
?>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
<?php else : ?>
    <h2>Subscriber Only</h2>
    <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>

Dưới đây là giải thích về mã trong các dấu đầu dòng:

  • $redirect_url = get_permalink();: Dòng này lấy URL của trang hiện tại và lưu nó vào biến $redirect_url.
  • if (is_user_logged_in()) :: Câu lệnh điều kiện này kiểm tra xem người dùng đã đăng nhập chưa.
  • Nếu người dùng đăng nhập, mã trong khối này sẽ được thực thi.
    • <h2><?php the_title(); ?></h2>: Điều này hiển thị tiêu đề của trang hiện tại.
    • <?php the_content(); ?>: Điều này hiển thị nội dung của trang hiện tại.
  • Nếu người dùng chưa đăng nhập, mã bên trong else khối được thực thi.
    • <h2>Subscriber Only</h2>: Điều này hiển thị một tiêu đề cho biết nội dung bị hạn chế.
    • <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>: Điều này sẽ hiển thị thông báo giải thích rằng nội dung bị hạn chế ở một số vai trò nhất định và cung cấp liên kết “Đăng nhập”. Liên kết của href thuộc tính được đặt thành URL đăng nhập được tạo bởi wp_login_url($redirect_url), đảm bảo rằng người dùng được chuyển hướng trở lại trang hiện tại sau khi đăng nhập.

Mã này kiểm tra một cách hiệu quả xem người dùng đã đăng nhập hay chưa và nếu không, sẽ khuyến khích họ đăng nhập để truy cập nội dung bị hạn chế, bằng liên kết hướng họ quay lại trang họ đang cố xem.

Xem theo vai trò người dùng cụ thể

Bạn cũng có thể giới hạn nội dung ở các vai trò người dùng cụ thể nếu muốn:

<?php
$allowed_roles = array('subscriber', 'editor', 'author'); // Add the roles you want to allow

$user = wp_get_current_user();
$redirect_url = get_permalink();

if (array_intersect($allowed_roles, $user->roles)) :
?>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
<?php else : ?>
    <h2>Restricted Access</h2>
    <p>We're sorry, the content you are trying to reach is restricted to certain roles. 
    <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>
<?php endif; ?>

Dưới đây là giải thích về mã trong các dấu đầu dòng:

  • $allowed_roles = array('subscriber', 'editor', 'author');: Dòng này tạo một mảng các vai trò được phép, chỉ định vai trò người dùng nào được phép truy cập nội dung. Bạn có thể tùy chỉnh mảng này để bao gồm các vai trò bạn muốn cho phép.
  • $user = wp_get_current_user();: Mã này lấy thông tin về người dùng hiện tại, bao gồm cả vai trò của họ.
  • $redirect_url = get_permalink();: Dòng này lưu trữ URL của trang hiện tại trong $redirect_url biến, sẽ được sử dụng để chuyển hướng người dùng quay lại trang hiện tại sau khi họ đăng nhập.
  • if (array_intersect($allowed_roles, $user->roles)) :: Câu lệnh điều kiện này kiểm tra xem vai trò của người dùng có giao nhau với các vai trò được liệt kê trong $allowed_roles mảng. Nói cách khác, nó kiểm tra xem người dùng có một trong các vai trò được phép hay không.
  • Nếu người dùng có một trong các vai trò được phép, mã trong khối này sẽ được thực thi.
    • <h2><?php the_title(); ?></h2>: Điều này hiển thị tiêu đề của trang hiện tại.
    • <?php the_content(); ?>: Điều này hiển thị nội dung của trang hiện tại.
  • Nếu người dùng không có một trong các vai trò được phép, mã bên trong else khối được thực thi.
    • <h2>Restricted Access</h2>: Điều này hiển thị một tiêu đề cho biết nội dung bị hạn chế.
    • <p>We're sorry, the content you are trying to reach is restricted to certain roles. <a href="<?php echo wp_login_url($redirect_url); ?>">Log in</a> to access it.</p>: Điều này sẽ hiển thị thông báo giải thích rằng nội dung bị hạn chế ở một số vai trò nhất định và cung cấp liên kết “Đăng nhập”. Liên kết của href thuộc tính được đặt thành URL đăng nhập được tạo bởi wp_login_url($redirect_url), đảm bảo rằng người dùng được chuyển hướng trở lại trang hiện tại sau khi đăng nhập.

Mã này hạn chế quyền truy cập vào các vai trò cụ thể một cách hiệu quả và nếu người dùng không có một trong các vai trò được phép, nó sẽ nhắc họ đăng nhập bằng liên kết sẽ chuyển hướng họ quay lại trang hiện tại sau khi đăng nhập.

Chọn mẫu của bạn

Để sử dụng trang này, bạn cần phải chọn Chỉ người đăng ký mẫu trang trong phần nâng cao của tùy chọn trang của bạn (trên thanh bên). Điều này sẽ hạn chế trang chỉ dành cho những người đọc đã đăng nhập hoặc (các) vai trò đã xác định của bạn.

Douglas Karr

Douglas Karr là CMO của mởINSIGHTS và người sáng lập ra Martech Zone. Douglas đã giúp hàng chục công ty khởi nghiệp MarTech thành công, đã hỗ trợ thẩm định hơn 5 tỷ USD trong các thương vụ mua lại và đầu tư của Martech, đồng thời tiếp tục hỗ trợ các công ty triển khai và tự động hóa các chiến lược tiếp thị và bán hàng của họ. Douglas là một chuyên gia và diễn giả về chuyển đổi kỹ thuật số và MarTech được quốc tế công nhận. Douglas cũng là tác giả đã xuất bản sách hướng dẫn của Dummie và sách lãnh đạo doanh nghiệp.

Bài viết liên quan

Back to top
Đóng

Đã phát hiện ra khối quảng cáo

Martech Zone có thể cung cấp cho bạn nội dung này miễn phí vì chúng tôi kiếm tiền từ trang web của mình thông qua doanh thu quảng cáo, liên kết đơn vị liên kết và tài trợ. Chúng tôi sẽ đánh giá cao nếu bạn xóa trình chặn quảng cáo của mình khi bạn xem trang web của chúng tôi.