/**
     * Validate the incoming request to either remove an item or add and item back to a subscription that was previously removed.
     * Add an descriptive notice to the page whether or not the request was validated or not.
     *
     * @since 2.0
     * @param WC_Subscription $subscription
     * @param int $order_item_id
     * @param bool $undo_request bool
     * @return bool
     */
    private static function validate_remove_items_request($subscription, $order_item_id, $undo_request = false)
    {
        $subscription_items = $subscription->get_items();
        $response = false;
        if (!wp_verify_nonce($_GET['_wpnonce'], $_GET['subscription_id'])) {
            wc_add_notice(__('Security error. Please contact us if you need assistance.', 'woocommerce-subscriptions'), 'error');
        } elseif (!current_user_can('edit_shop_subscription_line_items', $subscription->id)) {
            wc_add_notice(__('You cannot modify a subscription that does not belong to you.', 'woocommerce-subscriptions'), 'error');
        } elseif (!$undo_request && !isset($subscription_items[$order_item_id])) {
            // only need to validate the order item id when removing
            wc_add_notice(__('You cannot remove an item that does not exist. ', 'woocommerce-subscriptions'), 'error');
        } elseif (!$subscription->payment_method_supports('subscription_amount_changes')) {
            wc_add_notice(__('The item was not removed because this Subscription\'s payment method does not support removing an item.', 'woocommerce-subscriptions'));
        } else {
            $response = true;
        }
        return $response;
    }
}
WCS_Remove_Item::init();