I tried using woocommerce_my_account_my_orders_query
filter hook to filter orders from post metadata in My account > Orders.
This is my code:
<code>function custom_order_query_args($query_args) {
$user_id = get_current_user_id();
$workspace_id = get_current_workspace($user_id); // Ensure this returns the correct ID
if (!empty($workspace_id)) {
$meta_query = isset($query_args['meta_query']) ? $query_args['meta_query'] : array();
$meta_query[] = array(
'key' => 'workspace_id',
'value' => $workspace_id,
'compare' => '='
);
$query_args['meta_query'] = $meta_query;
}
return $query_args;
}
add_action('woocommerce_my_account_my_orders_query', 'custom_order_query_args');
</code>
<code>function custom_order_query_args($query_args) {
$user_id = get_current_user_id();
$workspace_id = get_current_workspace($user_id); // Ensure this returns the correct ID
if (!empty($workspace_id)) {
$meta_query = isset($query_args['meta_query']) ? $query_args['meta_query'] : array();
$meta_query[] = array(
'key' => 'workspace_id',
'value' => $workspace_id,
'compare' => '='
);
$query_args['meta_query'] = $meta_query;
}
return $query_args;
}
add_action('woocommerce_my_account_my_orders_query', 'custom_order_query_args');
</code>
function custom_order_query_args($query_args) {
$user_id = get_current_user_id();
$workspace_id = get_current_workspace($user_id); // Ensure this returns the correct ID
if (!empty($workspace_id)) {
$meta_query = isset($query_args['meta_query']) ? $query_args['meta_query'] : array();
$meta_query[] = array(
'key' => 'workspace_id',
'value' => $workspace_id,
'compare' => '='
);
$query_args['meta_query'] = $meta_query;
}
return $query_args;
}
add_action('woocommerce_my_account_my_orders_query', 'custom_order_query_args');
But it doesn’t work at all. Any insight?
New contributor
Trần Trung Thiên is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.