我有一个通过API与我的WooCommerce网站集成的履行合作伙伴,我希望通过限制API标记授予访问权限以进一步保护我的网站超出标准读/写范围本地支持的。作为第一遍,我能够使用woocommerce_rest_check_permissions
过滤器并检查令牌验证的用户以及我希望他们访问的帖子类型:
$restricted_user = 2;
$allowed_types = array('shop_order');
function filter_woocommerce_rest_check_permissions( $permission, $context, $object_id, $post_type ) {
$current_user = wp_get_current_user();
if ($current_user->ID == $restricted_user && !in_array($post_type, $allowed_types)) {
return false;
}
return $permission;
};
add_filter( 'woocommerce_rest_check_permissions', 'filter_woocommerce_rest_check_permissions', 10, 4 );
虽然这是朝着正确方向迈出的一步,但它还不够精细。理想情况下,我希望确保来自履行合作伙伴用户的令牌只能检索包含他们履行的产品的订单,更好的方法是从这些订单中删除任何不相关的订单项。我还没有找到一个动作/过滤器,让我可以在这个级别上点击响应,但我还在寻找。