限制产品类别的产品页面' x' WooCommerce

时间:2016-04-28 10:02:00

标签: php wordpress woocommerce restriction

我不想限制已注销用户或具有特定角色的用户的某些产品页面。最简单的方法可能是检查产品页面的类别ID,如果current_user_can(''),则重定向到主商店页面。

但我真的不知道从哪里开始..我应该在init上添加一个动作吗?如何检查当前页面产品ID?

我以为我可以用var_dump()得到一些数据但是没有结果。 我这样做了:

add_action('init', 'get_all_post_meta');

function get_all_post_meta() {
    //$meta = get_post_meta( get_the_ID() );
    global $post;
    var_dump('$post');
    $metavar = get_the_terms($post->ID);
    var_dump('$metavar');

}

但我的控制台没有结果。

修改:我发现我的var_dump()不正确,因为它应该像var_dump($post);现在继续我的任务。

1 个答案:

答案 0 :(得分:0)

到目前为止,这是我的解决方案,现在我需要弄清楚如何删除单个产品而不是全部。

add_action('wp_head', 'get_all_post_meta', 1 );

function get_all_post_meta() {

    global $post;
    $banned_cid = array(8);
    $current_cid = array();
    $metavar = get_the_terms($post->ID, 'product_cat');
    global $woocommerce;
    $redirect_url = 'http://www.example.nl/';


    if(current_user_can('subscriber') || current_user_can('manage_options')){}else if( is_product()){
        foreach ( $metavar as $term ) {
                        $cat_id .= $term->term_id.',';
                        array_push($current_cid, $term->term_id);
                    }
        var_dump($current_cid);

        $c = array_intersect($banned_cid, $current_cid);
            if (count($c) > 0) {    
                $woocommerce->cart->empty_cart(); 
                wp_redirect( $redirect_url, 302 );
                exit;
        }
    }
}