After some hours of debugging, I found the explanation.
The problem with the mysterious ###SPACE### string comes from your plugin's function "wpv_do_shortcode". Check the script wp-views/embedded/inc/wpv-shortcodes.php on line 5741:
function wpv_do_shortcode($content) {
$content = apply_filters('wpv-pre-do-shortcode', $content);
// HACK HACK HACK
// fix up a problem where shortcodes are not handled
// correctly by WP when there a next to each other
$content = str_replace('][', ']###SPACE###[', $content);
$content = str_replace(']###SPACE###[/', '][/', $content);
$content = do_shortcode($content);
$content = str_replace('###SPACE###', '', $content);
return $content;
}
This is a step by step walkthrough what it does with our use case:
The original $content is:
[asa2 value="OffersMainPriceAmount"][post_field post_id='3603' field='wpcf-asin-amazon'][/asa2]
Step 1:
$content = str_replace('][', ']###SPACE###[', $content);
Now $content is:
[asa2 value="OffersMainPriceAmount"]###SPACE###[post_field post_id='3603' field='wpcf-asin-amazon']###SPACE###[/asa2]
Step 2:
$content = str_replace(']###SPACE###[/', '][/', $content);
Now $content is:
[asa2 value="OffersMainPriceAmount"]###SPACE###[post_field post_id='3603' field='wpcf-asin-amazon'][/asa2]
Step 3:
$content = do_shortcode($content);
-> This runs into an error inside the asa2 shortcode because there still is ###SPACE### in the content.
Step 4:
$content = str_replace('###SPACE###', '', $content);
Now all ###SPACE### get removed but this is too late! This should be done before step 3 where do_shortcode gets executed. I am not sure what the hack in that function initially was all about, but you can not rely on that every shortcode will ignore some of your internal placeholder strings. In case of ASA 2 (hidden link), it expects a valid Amazon ASIN and if ###SPACE### gets prepended, it obviously is not a valid ASIN anymore and the result will be an empty output and a logged error.
So I think your function should look like this:
function wpv_do_shortcode($content) {
$content = apply_filters('wpv-pre-do-shortcode', $content);
// HACK HACK HACK
// fix up a problem where shortcodes are not handled
// correctly by WP when there a next to each other
$content = str_replace('][', ']###SPACE###[', $content);
$content = str_replace(']###SPACE###[/', '][/', $content);
$content = str_replace('###SPACE###', '', $content);
$content = do_shortcode($content);
return $content;
}
This way, our use case is working as expected. Can you provide an update with the function changed that way?
And by the way, your plugin produces many PHP Notices which makes it kind of hard to debug.