Wordpress: при отправки AJAX JSON экранируются кавычки?
Так $_POST и так будет содержать данные формы, зачем вы делаете JSON.stringify(obj) и конвертируете в строку? Именно эта строка потом и оборачивается в кавычки. И поскольку это строка, а не JSON прилетает на PHP, то и json_decode ее не может проглотить.
Вот тут есть рабочий пример:
https://www.sitepoint.com/jquery-php-ajax-json/
У jQuery есть настройка dataType: 'json'. И не нужно делать JSON.stringify(obj)

Пример

$.ajax({
      type: 'POST',
      dataType: 'json',
      url: window.ajaxurl + '?action=pack_partial_shipment_products',
      data: { products: { 1: 1, 2: 2 } },
    })