2016-04-28 21 views
0

特定の商品ページを、特定の役割を持つユーザーまたはユーザーからログアウトさせないように制限することはできません。最も簡単な方法は、製品ページのカテゴリIDを確認し、current_user_can('')がメインショップページにリダイレクトする場合よりも、おそらくでしょう。商品カテゴリ 'x'を含む商品ページを絞るWooCommerce

しかし、どこから始めたらよいかわかりません。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);今すぐ私の探求を続けてください。

答えて

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; 
     } 
    } 
} 
関連する問題