1

在 WordPress 上,我正在使用 Woocommerce 插件设置我的在线商店。我有一个生成定价表的 PHP 脚本。

但实际上每个人都可以看到。

我怎样才能将它添加到我的 WordPress 菜单中而没有人可以在没有登录的情况下看到它?

4

1 回答 1

1

在您的脚本中,您将添加is_user_logged_in()如下IF语句:

function my_php_script_table(){
    if( is_user_logged_in() ) {
        // The function code
    } else {
        return; // Exit
    }
} 

现在在您的 Wordpress 菜单中,您可以在“菜单”设置页面右侧的“屏幕选项”选项卡中添加启用“css 类”的其他 CSS 类。

在此处输入图像描述

然后一旦启用,在您的菜单项中,您将能够设置自定义 CSS 类:

在此处输入图像描述

然后,您将能够使用(这里的附加类是hide_if_non_logged向未登录的用户隐藏此菜单项:

add_action( 'wp_head', 'hide_if_non_logged_custom_inline_css', 500 );
function hide_if_non_logged_custom_inline_css() {
    if( ! is_user_logged_in() ) {
        ?><style>li.hide_if_non_logged { display: none !important;}</style><?php
    }
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。


您甚至可以在用户未登录时为要对未登录用户隐藏内容的页面添加重定向(您需要在代码中设置正确的页面 slug 或 ID)

add_action( 'template_redirect', 'custom_unlogged_user_redirection' );
function custom_unlogged_user_redirection() {
    // Below set your correct page slug
    if ( ! is_user_logged_in() && is_page( 'pricing-table' ) ){
        // Redirect to logout URL
        wp_safe_redirect( get_home_url() );
        exit(); // Always exit
    }
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。

于 2018-12-22T16:43:46.433 回答