2016-09-14 6 views
0

私は顧客metadataquery->set()を使用して注文を表示しようとしています。メタデータ - _admin_namewp_postmetaに保存されています。私は管理者だけがadmin_nameuser nameと同じオーダーを見ることができます。オーダーを表示するためにメタデータを照会します。 Woocommerce

どのようにquery->set()を自分のメタデータに使用できますか?ここで

は私のコードです:

function mypo_parse_query_useronly($wp_query) { 
    global $post; 

    if ($wp_query->is_admin && strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php?post_type=shop_order') == true) { 

     add_action('views_edit-post', 'child_remove_some_post_views'); 
     global $current_user; 
     $userName = $current_user->user_login; 
     $meta_query_args = array(
       array(
         'key'  => '_user_name', 
         'value' => $userName, 
         'compare' => '=' 
       ) 
     ); 

     //trying use this code 
     // $query = new WP_Query($meta_query_args); 


     $wp_query->set('author', $current_user->id); 

    } 
} 

add_filter('parse_query', 'mypo_parse_query_useronly'); 

    //don't display the order whish is not own by current user. 
function child_remove_some_post_views($views) { 
    //header('Location: '.$newURL); 
    unset($views['all']); 
    unset($views['wc-processing']); 
    unset($views['wc-on-hold']); 
    unset($views['wc-completed']); 
    unset($views['pending']); 
    return $views; 
} 

これを行うにはそうな方法がありますか?

ありがとうございました。

答えて

1
<?php 
function mypo_parse_query_useronly($wp_query) { 
    global $post; 

    if ($wp_query->is_admin && strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php?post_type=shop_order') == true) { 

     add_action('views_edit-post', 'child_remove_some_post_views'); 
     global $current_user; 
     $userName = $current_user->user_login; 
     $meta_query_args = array(
       array(
         'key'  => '_user_name', 
         'value' => $userName, 
         'compare' => '=' 
       ) 
     ); 

     //trying use this code 
     // $query = new WP_Query($meta_query_args); 


     $wp_query->set('author', $current_user->id); 
     $wp_query->set('meta_query', array(
             array(
               'key' => '_user_name', 
               'value' => $userName, 
               'compare' => '=' 
             ) 
         )); 

    } 
} 
add_filter('parse_query', 'mypo_parse_query_useronly'); 
//don't display the order whish is not own by current user. 
function child_remove_some_post_views($views) { 
    //header('Location: '.$newURL); 
    unset($views['all']); 
    unset($views['wc-processing']); 
    unset($views['wc-on-hold']); 
    unset($views['wc-completed']); 
    unset($views['pending']); 
    return $views; 
} 
関連する問題