public static function checkout_validate_vat()
 {
     check_ajax_referer('update-order-review', 'security');
     if (!isset($_POST['vat_id']) || !isset($_POST['country'])) {
         die;
     }
     $country = sanitize_text_field($_POST['country']);
     $vat_id = trim(preg_replace("/[^a-z0-9.]+/i", "", sanitize_text_field($_POST['vat_id'])));
     // Strip away country code
     if (substr($vat_id, 0, 2) == $country) {
         $vat_id = substr($vat_id, 2);
     }
     if (WC_GZDP_VAT_Helper::instance()->validate($country, $vat_id)) {
         // Add price vat filters..
         add_filter('woocommerce_cart_get_taxes', array(__CLASS__, "remove_taxes"), 0, 2);
         echo json_encode(array('valid' => true, 'vat_id' => $country . '-' . $vat_id));
     } else {
         wc_add_notice(__('VAT ID seems to be invalid.', 'woocommerce-germanized-pro'), 'error');
         ob_start();
         wc_print_notices();
         $messages = ob_get_clean();
         echo json_encode(array('valid' => false, 'error' => $messages));
     }
     die;
 }
 public function check_vat_exemption($post_data = array())
 {
     $tax_address = WC()->customer->get_taxable_address();
     WC()->customer->set_is_vat_exempt(false);
     if (isset($post_data['billing_vat_id']) && isset($tax_address[0]) && !empty($tax_address[0]) && !empty($post_data['billing_vat_id'])) {
         $vat_id = $this->parse_vat_number($post_data['billing_vat_id'], $tax_address[0]);
         if (WC_GZDP_VAT_Helper::instance()->validate($tax_address[0], $vat_id)) {
             WC()->customer->set_is_vat_exempt(true);
         } else {
             wc_add_notice(__('VAT ID seems to be invalid.', 'woocommerce-germanized-pro'), 'error');
         }
     }
 }